High-scalability Data Model Based on Sid

Source: Internet
Author: User
Tags database sharding
High-scalability Data Model Based on Sid



Preface

This article is based on the TMF Sid specification. You are welcome to provide suggestions and comments.



TMF document copyright information

Copyright©Telemanagement Forum 2013. All rights reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are supported ded on all such copies and derivative works. however, this document itself may not be modified in any way, including by removing the copyright notice or references to TM Forum, cannot T as needed for the purpose of developing any document or deliverable produced by a tm Forum Collaboration Project Team (in which case the rules applicable to copyrights, as set forth in the TM Forum IPR policy, must be followed) or as required to translate it into ages other than English.

 

As a network management system, the biggest challenge is how to meet general needs while quickly meeting personalized needs, in addition to closely related to the organizational structure and process system, software scalability, platform level, and flexibility are crucial. There is a classic saying: "The best architect is to find the best balance between the many internal and external factors involved in software development", a highly platform-based system, highly scalable.


Scalability refers to the ability of the software to adapt to growth and change. The better the scalability, the stronger the ability of the software to adapt to "change. Generally, the system is facing growth in three aspects:

1. Increasing data management requirements, including increasing data volume and types;
2. The increasing demand for end users, including the increase in user traffic;
3. Growing demand for function types.

The scalability of the system is more reflected in the system architecture design, including but not limited to the following aspects:

  • Requirement hierarchy: the hierarchy is based on the general requirements, such as the public platform layer, product platform layer, and provincial extension layer;
  • Scalability of data models: Data Modeling is supported. Data structures are extended using metadata, which does not depend on hard coding and dynamically generates user interfaces;
  • Scalability of business processes: supports Process Modeling and automates processes by customizing activity nodes and control logic;
  • Modularization or componentization: adding, deleting, enhancing, and restructuring some components have little impact on other components;
  • High Performance: including high throughput, high concurrency, and low latency. With few software changes or even the addition of hardware devices, the system processing capability can grow linearly.



Software Technologies for system scalability include:

  • Automatic Code Generation: for example, Eclipse, Visual Studio, and other ide tools (integrated development environment );
  • Dynamic Compilation: dynamically loads and executes code. For example, both Java and. Net provide dynamic compilation methods;
  • Metadata: Metadata allows the program language to automatically describe itself in a non-specific language;
  • XML language: including xlink, xpointer, XSL, and XML schema;
  • Plug-in technology: when adding functions to the system or providing certain system performance, you only need to add some files without modifying or adding code in the program;
  • Reflection technology: allows the system to load and execute plug-ins at run time without the need to compile source code between components.



This article focuses on the high scalability of the data model, rather than the high scalability of the system. Of course, the high scalability of the data model can bring about high scalability of the system. In general, compared with other methods (such as middleware design), good data model design can achieve high system scalability at a low cost.
The scalability of data models mainly includes the following three factors:
1. Whether to meet the existing business needs;
2. Is it easy to cope with possible changes in data requirements in the future and maintain the stability of the data model;
3. Is it easy to cope with possible changes to business needs in the future and maintain the flexibility of the data model;
4. Efficient or not. Whether it is simple for developers and efficient for system operation.

Taking wireless professional 2g, 3G, and LTE as an example, at least before the arrival of the disruptive NFV/SDN technology, despite the changes in its communication technology, however, the resource data model of the network management system does not need to change significantly. For example, after an LTE resource is managed, the network management system does not need to modify its database structure, but can use simple configurations (or even add or modify software code) manages enodeb, eutrancell, and other LTE resource data.
Taking the resource business model of TD wireless as an example, if the resource data model of the network management system such as RNC node, NodeB node, RNC logic device, NodeB Logic Device and Its database E-R diagram are designed according to the model in the red dotted box, when the data management scope is extended to LTE resources, you have to create a system database table for resource entities such as enodeb nodes, enodeb logical devices, and eutrancell in the same way, the code at the business logic layer and data access layer must be added or modified accordingly.

 

Figure 1 TD wireless professional resource model [Click to enlarge the image]



The above TD wireless professional resource model is similar to a question in the official TMF community. The chairman of the tmfsid group John Reilly answered the question.



Someone raised the following question:

How to Use Sid to model BTS, BSc, MSC, and HLR? Can BTS, BSc, MSC, and HLR entities be created from the SID through inheritance?



John Reilly's answer:

There are two ways to model BTS, BSc, MSC, and HLR:
First, use the "Composite resource specification" and "resource Feature Specification" entities, and indirectly model resources such as BTS, BSc, MSC, and HLR through their instances, instead of explicitly creating sub-classes of "Composite resources" entities, such as BTS entities, BSc entities, MSC entities, and HLR entities. For example, you can create a "composite resource Specification" instance for each type of devices and create a "resource Feature Specification" instance for each device's properties.
Second, explicitly create sub-classes of the "Composite resource" entity, such as the BTS entity, BSc entity, MSC entity, and HLR entity.



For details, visit:
Http://www.tmforum.org/community/communities/information_framework_sid/f/6/t/171339.aspx

We can see from the above discussion that johnreilly recommends using the "Compound resource specification" and "resource Feature Specification" entities in Sid when solving such problems, no new entities such as BTS, BSc, MSC, and HLR need to be extended for Sid. The reason for this is:

1. If a new subclass is extended from the Sid, the SID model will always be updated with new technologies and devices. 2. If a new subclass is extended from the SID, the model will be in an unstable and repetitive state.

Johnreilly indicates that other existing standards, such as the 3GPP NRM model, can also be used for Sid extension.



1. Basic concepts of design patterns

The "Compound resource specification" and "resource Feature Specification" entities mentioned above belong to the specification pattern and characteristic pattern in the SID design pattern respectively ), the specification mode and feature mode are widely used in the whole Sid modeling. So what is design pattern? The definition of TMF is as follows:

"Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice"
Each pattern describes a recurring problem around us and the core of the solution to the problem. In this way, you can use the solution again and again without repetitive work.



The purpose of the design pattern is to improve the model quality, especially in terms of cohesion and coupling. TMF Sid adopts multiple design modes, such:

  • Abstract Mode
  • Specification Mode
  • Feature Mode
  • Role Mode
  • Merging Mode
  • Status Mode
  • Group Mode
  • Management information/method mode



Specificationpattern and characteristic pattern run through the entire Sid model.

Sid defines specificationpattern as follows:



The specification mode is applied to an instance that describes an item or service and is independent of any such item or service.



The specification mode is represented by an entityspecification. A specification entity does not represent an instance of a single concept or thing, but information of a type of concept or thing. The specification mode separates the unchanged and relatively fixed attributes and behaviors of an object from their variable attributes and behaviors. By defining a specification object, general rules and attributes are separated and defined separately to form an object "template ". This allows each entity to define its own different attributes as a supplement to the common attributes defined in the Specification entity.

 

Sid defines characteristicpattern as follows:



Feature mode separates the attributes of an object from that of an object, and uses a separate entity to describe the attributes.



Feature mode describes the attributes and values of an object using a separate entity (Feature Specification characteristicspecification and Feature Specification value characteristicspecvalue.



 

The advantages of the specification mode and feature mode are:

1. Avoid the deep inheritance of entities in the model and maintain the stability of the model. 2. When a new data type needs to be managed, you do not need to add or modify the database structure and data access code; 3. A consistent and reproducible mode is provided. If the two design modes are not used, the overall advantages of the Sid model cannot be obtained.



Figure 2 shows the typical structure of the specification mode and feature mode in Sid. The core idea of the specification mode and feature mode is to use entityspecification to create a public attribute of a certain type of entity and rootentitytype to create a proprietary attribute specific to an object. Rootentitytype is an entity used in Sid modeling. It generally refers to business entities such as "customer", "product", and "service.

 

Figure 2 typical structure of the specification mode and feature mode [Click to enlarge the image]



From the above model diagram, we can see that:

  • An instance of a Specification entity (entityspecification) defines a certain type of entity;
  • Characteristicspecification defines attributes of one or more types of entities;
  • Characteristicspecvalue defines the possible values of feature types;
  • You can define attributes for productspecification, product, and customer.



So how can we apply Sid's "Specification mode" and "feature mode?

2. Introduction of specification mode and feature Mode

The following uses the most common product display page of an e-commerce website as an example to describe the application of the specification mode and feature mode based on the typical structure of the specification mode and feature mode in Figure 2. This page shows a modem named "linksysusb ethernet cable modem DOCSIS.



 

"Linksys usbethernet Cable Modem DOCSIS" in is an instance of the productspecification. The productspecification is represented as entityspecification in Figure 2. Each tab page (features function, description, additional info additional information, and shipping info logistics information) in constitutes an instance of the characteristicspecification, the characteristicspecification is a collection of characteristicspecification instances. The characteristicspecrelationship instance is used to combine the instances of each function point into a "function ". The entityspeccharuse instance has a canbeoverriden attribute that can be set to true, indicating that this feature cannot have a value.



In this example, the characteristicspecvalue and charspecvaluerelationship entities in Figure 2 are not used, but these two entities can be used to represent a set of modem colors, such as the Panel color of the modem (characteristicspec) if you select characteristicspecvalue, the back color can only be black. The preceding rules can be implemented through a charspecvaluerelationship instance. This charspecvaluerelationship instance is associated with blue and black, and its charvaluerelationshiptype attribute is set to "passive", indicating that blue and black are used together. The charspecseq attribute of the characteristicspecrelationship object is used to sort the set of attributes that constitute characteristicspecification. For example, the mobile phone number msisdn is composed of CC (country code), NDC (7-bit domestic destination code), and Sn (4-bit user number). The charspecseq attribute is used to specify this order.

The mincardinality and maxcardinality attributes are used to specify the number of values associated with the instance. In this example, the mincardinality and maxcardinality attributes of the modem panel color are 1, the modem panel color has only one color value. The value of mincardinality is 0, indicating that its attribute can have no value.
The characteristicspecifications and characteristicspecvalue entities both have a valuetype attribute, because the characteristicspecifications associated with characteristicspecvalue can be a combination of multiple numerical types, such as a combination of strings and integers. When characteristicspecvalue has the same value type for all instances, you only need to set the valuetype attribute of characteristicspecification.

A characteristicspecvalues instance can represent a specific value or value range. For example, the modem's color value can be a specific value, and the modem's operating temperature can be a value range. The rangeinterval attribute of characteristicspecvalue defines whether the values of valuefrom and valueto are included. This is equivalent to adding an operator for the valuefrom and valueto attributes, such as "<=" or "<".

In some models, the specific values and ranges of attributes are represented by different subclasses of the characteristicspecvalue entity. To simplify modeling, characteristicspecvalue is used to represent these two cases. In addition, some models use the measurement units of values as separate entities, and use the relational entities to define the conversion relationships between different measurement units. Similarly, the above practices are not taken into account here. Of course, this can be used as the SID extension for modeling.

Sometimes for all instances of an object, some characteristicspecifications are always set to one or a set of fixed constants. For example, the operating temperature of a modem is a fixed temperature range, and the canbeoverriden attribute can be used to indicate whether the value is a constant. In addition, characteristicspecvalues can be extended by assigning values to entitycharacteristics. For example, for the userids attribute, in addition to the value of the characteristicspecvalues instance, there are also some characteristicvalues instance values. The extensible attribute of the characteristicspecifications object is used to add some new characteristicspevalues instances by creating the characteristicisticvalues instance.

Tokens can be shared by multiple entityspecification and rootentitytype instances. entityspeccharuse defines how entityspecification instances use characteristicspecifications, and rootentitytypecharuse defines how rootentitytype instances use characteristicspecifications. For example, if the name attribute of a characteristicspecifications instance is set to "Bandwidth", the "Bandwidth" attribute is renamed as "downstream bandwidth" in the entityspeccharuse instance ", in the rootentitytypecharuse instance, the "Bandwidth" attribute is renamed as "upstream bandwidth ". Therefore, the attribute values in the characteristicspecification instance can be overwritten by re-assigning values to the entityspeccharuse and rootentitytypecharuse attributes. For another example, if the value of the mincardinality attribute of the characteristicspecification instance is 0, it means that the characteristicspecification attribute can be assigned no value, but in other cases, the characteristicspecification attribute must be assigned a value, the value of mincardinality is 1.

The package attributes of rootentitytypecharuse and entityspeccharuse are used to indicate attribute combinations, similar to the combination modes without explicit inheritance. When the value of this attribute is true, values of mincardinality, maxcardinality, unique, canbeoverriden, and extensible attributes are not required.

The value of characteristicspecification used by entityspecification or rootentitytype may need to be further defined. This can be achieved using the relational entity between characteristicspecvalue and rootentitytypecharuse and entityspeccharuse. For example, for a characteristicspecification instance named color, the characteristicspecvalue instance may contain all color types, but for a modem, only some color types are required, you can use rootentitytypecharvalueuse and entityspeccharvalueuse to redefine different default values for characteristicspecification.

The application of the specification mode and feature mode is introduced above. How can we instantiate the entities using these two modes?
The entity instantiation with these two modes is mainly completed by characteristicvalue. 3 defines the relationship between characteristicvalue and the object. A characteristicvalue is a characteristicspecification attribute value of an object instance. In the above modem example, characteristicvalue can be blue (modem panel color) and Black (modem back color ). Characteristicvalue can also be associated with the related characteristicspecvalue.

 

Figure 3 instantiation of specification mode and feature mode [Click to enlarge the image]



Characteristicvalue is associated with characteristicspecification, and the Value Attribute of characteristicvalue needs to be assigned values in the following two cases:

1. If the value of an attribute is not defined in characteristicspecvalue but directly entered, characteristicvalue is directly associated with characteristicspecification. For example, the VOD service has a characteristicspecification attribute of starttime, and the input value "-8-6" is associated with starttime.


2. When the value of an attribute is selected from the value range defined by characteristicspecvalue, the value attribute of characteristicvalue must be assigned to the selected value.
When the value of characteristicspecvalue is a specific value or unchangeable value (that is, the canbeoverrided attribute is set to true), characteristicvalue only needs to be associated with the characteristicspecvalue instance instead of the characteristicspecification instance.


3. Examples of application of design patterns

4. Examples of some resource entities that have applied the specification mode and feature mode.

 

Figure 4 Examples of some resource entities in the Specification mode and feature mode [Click to enlarge the image]



The resource entity in Figure 4 is described as follows:

1. resourcespecification indicates all resource specification instances, such as RNC node specifications and NodeB node specifications. 2. resourcecharacteristicspecification indicates the attributes of all resources, such as province, manufacturer, and RNC. 3. resourcecharacteristicspecvalue indicates possible values of various resource attributes, such as Guangdong and Huawei. 4. Resource) resource ID and name. 5. The feature value (characteristicvalue) indicates the value of each attribute of the resource.



According to the TMF eTOM business process framework, instances of resource specification (resourcespecification), Resource Feature Specification (resourcecharacteristicspecification), and resource Feature Specification value (resourcecharacteristicspecvalue) are in strategy, infrastructure, and product (strategy, the productlifecycle Management in Infrastructure & product has static characteristics. The related process elements include:

 

  • Development Resource Business Requirements
  • Development Resource Specification



Resources and characteristicvalue instances are generated in the fulfillment phase of O & M (Operations). They have dynamic characteristics. The related process elements include:

 

  • Allocate and install Resources
  • Configure and activate Resources



As shown in figure 5.

 

Figure 5 position of resource-related entities in the eTOM business flow [Click to enlarge the image]




The high scalability of the data model can be achieved based on the specification mode and feature mode, which can improve the high scalability of the network management system. The benefits include:
1. greatly reduce the maintenance and upgrade costs in the future;
2. Accelerate the system release time;
3. Improve the degree of system productization;
4. Improve the platform of the system;


Although the data model based on the specification mode and feature mode has excellent scalability and unified data perspective, it also has the following problems:
1. This design will lose some business meaning, so we need to use good metadata and code table to explain and improve the business meaning of data;
2. Lack of database constraints that meet business rules, which must be implemented using metadata and business logic code;
3. Because most data sets are concentrated in characteristicvalue entities, the physical model uses narrow vertical tables and data object identifiers to abstract objects and properties, this will cause system performance problems: on the one hand, a large number of data sets are concentrated in a few tables; on the other hand, upper-layer applications may require a large number of multi-Table associations and vertical to horizontal operations. These two problems can be solved through database sharding, table sharding, and partitioning, as well as the establishment of a unified data access interface view (blocking the underlying implementation.


Appendix: Sid introduction.

Sid (sharedinformation/data model, shared information and data model) is the information framework-information framework, the purpose is to meet the sharing data definition and model sharing requirements of the Information and Communication Service Industry. Sid defines the information reference model and standard description language. It aims to provide a reference model framework by creating a series of standard and common terms. In short, Sid constructs the Information Model in the TMF frameworx framework.



SID not only meets the information data requirements of the OSS system, but also maintains consistency with the business process and general process vocabulary proposed by eTOM (enhanced telecom operation map, enhancing the telecom operation diagram, it covers the information required by all eTOM business processes, which means that Sid covers the majority of information required by a telecom operator for operation, it provides an effective way for information communication enterprises to organize their business processes and facilitate mutual communication. The SID model provides an information data reference model and a general information data vocabulary from the perspective of business entities. Specifically, Sid defines the objects that eTOM business processes interact with. The combination of SID model and eTOM explains how these "Objects interact to meet specific business needs.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.