Generic Mediation Device
Generic Mediation Device
Generic Mediation Device
previous
next
Show "Changes on this Page"
My Pages
BSCS iX Release 3 > Applications > GMD - Generic Mediation Device > GMD Overview >
Description
Description
The mediation device represents the interface between BSCS applications and the network. It
consists of a generic component and a component that has to be adapted for the requirements of
each switch vendor. Generic Mediation Device (GMD) represents the generic component and is
independent of switch vendors and hardware.
GMD is based on a client-server architecture. It establishes a platform on which vendor-specific
mediation devices can be coupled with BSCS without being effected by the BSCS-internal
application logic and data formats.
GMD forwards changes that are requested by the customer care system to either the appropriate
components of BSCS, to the network or to both of them depending on the type of request.
Typically, there are two types of change requests:
contract-related requests
Change requests relating to contract and service changes, including changes to the
resources assigned to a contract.
Examples for contract-related requests are the suspension of a contract, the activation of a
new service assigned to a contract, the deletion of microcells assigned to the contract and
so on.
Most of the changes in contract-related requests have to be provisioned to the network,
such as a contract activation or the change of an MSISDN. Therefore, these contractrelated requests are also referred to as network-related requests.
customer-related requests
Change requests for which 'customer' is the managed object of the request, such as the
creation of a customer or a change in the familiy assignment of a customer.
Provisioning to the network is not required for this type of request. The information has
to be made available to the appropriate BSCS applications only.
For more information on the types of messages that GMD creates for the network and the various
BSCS applications, refer to the Architecture section.
Details on the data flow between the components of GMD and on the processing logic of these
components can be found in the Processing Logic section.
GMD connects to LEM and enquires, whether a license is present and, if so, whether
Licensing GMD functions have to be suspended because of exceeded license limits. GMD can
suspend the following functions:
When a function is suspended, the corresponding request is suspended, too. Suspended requests
can be processed using the GMDLRD process.
When a request is part of a complex request chain, but its processing is not commenced because
of licensing issues, all requests of the complex request chain are processed except for those that
are directly dependent on the suspended request.
up
previous
next
Send us your feedback
Open this page in a new window for bookmarking
Legal Information | LHS Telekommunikation GmbH & Co. KG, 2010. All rights reserved.
Usually, change requests are initiated by a client of Customer Management Server (CMS), such
as Customer Center (CX). CMS writes the requests in the GMD request table (MDSRRTAB)
where they can be picked up by GMD.
If horizontal scalability of rating applications is used, requests for the network provisioning of
family group information can be created by Event Handler (EVH). These provisioning actions
are required if a customer has moved from one family group to another and the rating of the new
family group is done by a different rating instance. The creation of a change request by EVH is
triggered by PRIH if it detects a mismatch between the family group information in the incoming
CDRs and the family group partitioning in the system.
GMD regularly polls this table and forwards the requests according to the request type:
customer-related changes as well as contract-related changes that are relevant for the
rating applications are forwarded to RDH by means of reference data records (RDRs)
The one-time charges and the first recurring charge (if that has to be paid in advance) are
forwarded to Recurring Charge Handler (RCH) by means of reference data records
(RDRs).
For details on the RCH processing of these records, refer to Charges Resulting From
Contract Activation.
for service activations in existing contracts, charge reservations for the one-time charges
and the first advance recurring charge, confirmations or cancellations for the reserved
balance amounts as well as charging requests are forwarded to the online charging chain
(starting with Call Control Gateway, CCGW) by means of usage data records (UDRs)
For details about the communication between GMD and CCGW for this scenario, refer to
One-time and Recurring Charges in the Online Charging functional area.
RDRs for successfully finished contract-related requests are sent to Order Management
Server (OMS)
Multiple instances of all GMD processes can run in parallel to increase the performance of GMD
and to support the high availability of the applications in the customer care functional area.
Processing Logic
1. GMD Command Generator (GMDCOM) retrieves new requests from the database.
If a request has been marked to require preprocessing by GMD Extension (GMDEXT),
the requests are retrieved and processed by GMDEXT first and are then sent to
GMDCOM to continue the standard processing chain.
2. GMCCOM creates the required messages, as specified by Customer Management Server
(CMS) during creation of the request in the GMD request table.
3. Depending on the type of message, GMDCOM forwards the message to the next process
in the data flow:
Tools.
up
previous
next
My Pages
BSCS iX Release 3 > Applications > GMD - Generic Mediation Device > GMD Overview >
Processing Logic > GMD Extension (GMDEXT)
GMDEXT can either run as a sender of UDS records (send mode) or as a receiver
of UDS records (receive mode).
GMDEXT
Modes
If a GMDEXT instance runs in receive mode, it reads UDS records from a dedicated message
profile. There will be a subprofile to distinguish UDS records relating to the preprocessing scope
and UDS records relating to the postprocessing scope to ensure that the records are routed to the
correct GMDEXT instance.
For GMDEXT in send mode, the following load balancing issue has to be kept in mind: A
situation has to be avoided in which a preprocessing GMDEXT sends more records into the
system than a postprocessing GMDEXT can handle. If there are multiple instances of GMDEXT,
it is the responsibility of the integrator to set up an appropriate amount of processes for each
scope.
Processing The processing logic below contains the steps of both GMDEXT processing
modes and also of both GMDEXT scopes.
Logic
1. Creates a PID file in the <work>/GMD directory. The name of the file is
gmdext.<host name>.<pid>.running
GMDEXT has not processed the request yet (that is, EXT_SENT is NULL)
5. Creates UDS records as defined in the specific preprocessing task required for
the request and waits for a reply.
To indicate that GMDEXT has sent the request and is now waiting for a reply,
the EXT_SENT flag is set for the request.
6. When the acknowledgement is received, GMDEXT processes the
acknowledgement as defined in the preprocessing task and sets the
EXT_RECEIVED flag to indicate that GMDEXT preprocessing is finished.
7. GMDCOM continues the processing of the request and the processing steps of
the standard GMD processing chain are carried out.
8. Just before the standard GMD processing chain is finished, that is, before
GMDRES performs 'finish request' on the database, GMDRES hands over
control to GMDEXT for postprocessing.
9. GMDEXT can identifies requests that are ready for postprocessing by means
of the RES_PAUSED column.
10.GMDEXT evaluates if the processing was successful or not (by means of the
value in the RES_PAUSED column), creates UDS records as defined in the
specific postprocessing task required for the request and waits for a reply.
To indicate that GMDEXT has sent the request and is now waiting for a reply,
the EXT_SENT flag is set for the request.
11.When there is a problem with connecting to the BSCS database (severity '1'),
a reconnect can be attempted. You can set up reconnect options in the
RAC_Setup.xml registry file. The following options can be set:
o
To support one-time and recurring charging for prepaid services, GMD enables coupling of
provisioning and charging. This means that a prepaid contract is charged upon service activation,
provided that the service activation has been successful. This is achieved by using GMD
Extension (GMDEXT).
Preprocessi GMDEXT performs the following preprocessing tasks before the processing of the
ng
Processing of the request continues in the other GMD components: GMDCOM initiates the
network provisioning of the service activation and after the response has been received and
registered by GMDRRS, GMDRES updates the database with the requested changes and hands
over control to GMDEXT for the postprocessing task. GMDRES forwards the result of the GMD
processing to GMDEXT by means of the RES_PAUSED column in MDSRRTAB. GMDRES
pauses until after postprocessing.
Postprocessi GMDEXT performs the following postprocessing tasks to confirm or cancel the
charge reservation made in the preprocessing step.
ng
1. GMDEXT (in 'send' mode) evaluates the value of the RES_PAUSED column set
by GMDRES.
o
2. To indicate that the 'send' step of the postprocessing task has been
completed, GMDEXT sets the EXT_SENT flag in MDSRRTAB.
3. GMDEXT (in 'receive' mode) waits for an acknowledgement.
o
The processing of the request continues in GMDRES, which finishes the request.
Contract Takeover
In GMD, a contract takeover is split into two requests: first, the contract of the old contract
owner is deactivated and next, the contract of the new contract owner is activated. To make sure
that the processing of the two requests is linked, the requests are represented by means of a GMD
parent-child request. That means that only after the parent request for the contract deactivation
has been finished, GMDCOM starts processing the child request for the contract activation.
The request 'deactivation for contract takeover' (action ID 59), does not require GMDEXT
processing. GMD sends an RDR to the rating applications and finishes the request. Network
provisioning is not required for the change of the contract owner.
The request 'activation for contract takeover' (action ID 60) requires GMDEXT processing,
because the RDR for contract activation should only be created after a snapshot of the balances
related to the deactivated contract has been written to the file system. The balance snapshot is
forwarded to GMD by means of a balance information record (BIR).
Preprocessi GMDEXT performs the following preprocessing tasks before the RDRs for an
activation request of a contract takeover action are sent:
ng
1. GMDEXT (in 'receive' mode) waits for a BIR from Reference Data Handler
(RDH) for CCH.
2. When such a record arrives, GMDEXT initializes the corresponding request by
copying the start parameters for the related action from
GMDEXT_PROCESSING to MDSRRTAB.
3. GMDEXT writes the BIR to the file system (to the <work>/EDI/COMMAND
directory).
The following file naming conventions are used: <request number>.bir
4. GMDEXT marks the preprocessing of the request as finished by setting the
EXT_SENT and EXT_RECEIVED flags in MDSRRTAB.
Processing of the request continues in the other GMD components: GMDCOM writes an RDR
for contract activation to the file system and GMDRES creates an RDR for the rating
applications as well as a multi-message for cost control that combines the BIR information and
the RDR information (both read from the file system).
Postprocessing No postprocessing is performed for this kind of GMD action.
up
previous
next
Legal Information | LHS Telekommunikation GmbH & Co. KG, 2010. All rights
reserved.
up
previous
next
BSCS iX Release 3 > Applications > GMD - Generic Mediation Device > GMD Overview >
Processing Logic > GMD Command Generator (GMDCOM)
EDIFACT messages
Most of the contract-related actions are provisioning-relevant, that is,
EDIFACT messages have to be sent to the network provisioning system.
If GMD is running in a multiple-instance MVNO/MVNE environment, all
contract-related changes in the MVNO instance have to be provisioned to the
network and the contract and service changes have to be replicated in the
MVNE instance.
In the MVNE instance, no EDIFACT messages are created for contract-related
requests, if GMDCOM detects that a request originates from an MVNO
instance. The originator of the request can be determined by means of the
request code, which is unique for the whole MVNO/MVNE environment. For
details on the provisioning workflow required to synchronize the MVNE
instance with the contract-related changes made in the MVNO instance, refer
to Provisioning in the Multicompany Deployment (MVNO/MVNE) concept.
RDRs
For customer-related requests GMDCOM creates RDRs and applies the following processing
steps:
For all other customer-related requests, GMDCOM writes the RDRs to DaTA
and finishes the request.
GMDCOM periodically enquires the License Manager whether license limits are exceeded and,
therefore, certain functions must be suspended.
At least one instance of GMDCOM has to run. Multiple GMDCOM instances can run in parallel.
No special configuration is needed. For details on how to start the GMD environment, refer to
Starting and Stopping.
Processing Logic The processing logic of each GMDCOM instance is as follows:
1. Creates a PID file in the <work>/GMD directory. The name of the file is
gmdcom.<host name>.<pid>.running
The request is new (status '2') or the sending of the EDIFACT message
failed for the request and has to be retried (status '10').
The execution date for the request has been reached (that is,
MDSRRTAB.ACTION_DATE is less than or equal to the current date).
The request must not call for an action that is currently suspended
because of exceeded license limits.
If the switch that the request should be forwarded to is down or if there are
other pending requests for the related contract, the request will not be
processed by GMDCOM.
If no requests can be found for processing, GMDCOM enters in a configurable
sleep period (the default length is 1 second) and tries to retrieve requests
again. After 10 consecutive sleep periods, the sleep interval is increased by a
factor of 10.
5. Enters the process ID and the host name in MDSRRTAB, so that the retrieved
requests are marked as 'in process'.
6. For each of the requests retrieved from the database, GMDCOM performs the
following actions, depending on the requst status:
o
For new requests (that is, requests in status '2'), GMDCOM creates a
request log file and translates the request into the required message
formats (EDIFACT, RDR or both), as specficied in MDSRRTAB.
For requests for which the sending of the EDIFACT message failed (that
is, requests in staus '10'), GMDCOM reads the EDIFACT file referenced
in the log file of the request and tries to resend it.
9. For contract-related changes that require RDRs only, the RDR is written to the
file system (to the <work>/EDI/COMMAND directory) and the status is set to '16'
so that the RDR will be writtten to DaTA by GMDRES.
10.RDRs related to a family change (action ID 47) are sent to DaTA and the
request remains in pending status until GMDRESDaTA has successfully
processed the response.
11.RDRs of other customer-related requests are sent to DaTA and the request is
finished directly.
12.For each processed request, GMDCOM removes the process ID from
MDSRRTAB.WORKER_PID and the host name from
MDSRRTAB.WORKER_HOST , to indicate that the request is no longer 'in
process'.
13.After all requests retrieved from the database have been processed,
GMDCOM returns to step 4 and retrieves new requests for processing.
Licens
The period is set during startup of GMDCOM by a command line option and depends
es
If license limits are not exceeded, the period must be within a range from 60
seconds to 86.400 seconds. This period is set using the -lps command line
option.
If license limits are exceeded, the period must be within a range from 60
seconds to 3.600 seconds. This period is set using the -lpf command line
option.
If a license limit is exceeded, the corresponding function - which is either a contract activation or
a contract reactivation request - can be suspended.
GMDCOM requires host and port of the License Manager to be able to connect. Host and port
information can be configured using the SENTINEL_HOST and SENTINEL_PORT environment
variables or can be set within the LICENSE_CONFIG database table.
up
previous
next
Legal Information | LHS Telekommunikation GmbH & Co. KG, 2010. All rights
reserved.
up
previous
next
My Pages
BSCS iX Release 3 > Applications > GMD - Generic Mediation Device > GMD Overview >
Processing Logic > GMD Request Response Server (GMDRRS)
1. Creates a PID file in the <work>/GMD directory. The name of the file is
gmdrrs.<host name>.<pid>.running
6. When there is a problem with connecting to the BSCS database (severity '1'),
a reconnect can be attempted. You can set up reconnect options in the
RAC_Setup.xml registry file. The following options can be set:
o
7. Returns to step 3 and waits for the next EDIFACT response message from the
external network provisioning system.
up
previous
next
Legal Information | LHS Telekommunikation GmbH & Co. KG, 2010. All rights
reserved.
up
previous
next
My Pages
BSCS iX Release 3 > Applications > GMD - Generic Mediation Device > GMD Overview >
Processing Logic > GMD Response Parser (GMDRES)
parses the responses received from the network and stores the extracted
information in the database
cleans up the database and optionally also cleans up the file system
At least one instance of GMDRES has to run. Multiple GMDRES instances can run in parallel.
No special configuration is needed. For details on how to start the GMD environment, refer to
Starting and Stopping.
Processing Logic The processing logic of each GMDRES instance is as follows:
1. Creates a PID file in the <work>/GMD directory. The name of the file is
gmdres.<host name>.<pid>.running
All successfully processed and finished requests are moved to the GMD
history table (GMD_REQUEST_HISTORY) and removed from the GMD
request table (MDSRRTAB).
As a rule, the date on which the changes become effective in BSCS is set to the
Effective effective date returned in the EDIFACT response file, or, if no such date is available
Date
because no EDIFACT messages were involved in the request processing, the
Handling
If BSCS time and network time are not synchronized, there might be situations in which the
ACTION_DATE stored in MDSRRTAB is greater than the effective date returned in the
EDIFACT message.
GMDRES always uses the greatest available date for the effective date of the changes. So, in the
situation outlined above, the ACTION_DATE set during request creation would be used and not
the effective date returned in the EDIFACT response. If the time in the HLR (and therefore the
timestamps in the call records sent to BSCS) is before the time stored as effective date, this
might lead to rating problems.
To notify the administrator about synchronization problems between BSCS time and network
time, GMDRES logs a warning in the request log file if the ACTION_DATE stored in the
database was used instead of the effective date returned in the EDIFACT response.
There is one exception to the described handling of effective dates: If an EFFECTIVE_DATE is
already available in the GMD request table, that date will in any case be used as the effective
date of the changes in the BSCS database. The EFFECTIVE_DATE can be set during request
creation in Customer Management Server (CMS), for example, when contract-related request
data is propagated from an MVNO instance to an MVNE instance.
up
previous
next
Legal Information | LHS Telekommunikation GmbH & Co. KG, 2010. All rights
reserved.
up
previous
next
My Pages
BSCS iX Release 3 > Applications > GMD - Generic Mediation Device > GMD Overview >
Processing Logic > GMD Recovery Process (GMDREC)
changing the status of locked switches if the switch unlock time has passed
and the network provisioining system has not sent a 'SWITCH UP' message
yet
cleaning up of blocked data by resetting the process ID and host name if the
configured request timeout has passed
Each GMD process that works on a specific request marks the request in
MDSRRTAB with the GMD process ID and the name of the host on which the
GMD process is running. In addition to that, for each change in MDSRRTAB,
each GMD process sets the timestamp to the current system time. This way,
GMDREC can determine if a request has been marked as 'in process' for
longer than the configured request timeout.
If such a situation occurs, GMDREC assumes that the related GMD process or
the server on which the GMD process has been running has crashed and
resets the request information about process ID, host name and timestamp in
the database. This way the request can be processed by another instance of
the GMD process in question.
The request timeout ist configured in MPSCFTAB, where CFCODE = '900'.
tracking the number of GMD attempts for processing a request in the error
retry counter
The maximum number of attempts for a request is configured in the
GMD_RETRY table . If the maximum number of retries is reached, the request
status is set to status '12' (GMD failure). For these requests, GMDREC sends a
notification to the system administrator.
If the maximum number of retries has been reached while trying to send the
acknowledgement message for contract provisioning in an MVNO/MVNE
environment, GMDREC sends an acknowledgement message that contains
the error that prevented the successful sending of the message.
Multiple instances of GMDREC can run in parallel. No special configuration is needed. For
details on how to start the GMD environment, refer to Starting and Stopping.
Processing Logic The processing logic of each GMDREC instance is as follows:
1. Creates a PID file in the <work>/GMD directory. The name of the file is
gmdrec.<host name>.<pid>.running
whole server on which the GMD process was running) can be cleaned up so
that another instance of the same GMD process can try to continue the
processing of the request.
5. Fetches a request from the MDSRRTAB table.
The number of requests to be retrieved at once can be configured using the
-n command line option. By default, only one request is processed at a time.
6. Sends a memo and notification for requests that have reached the limit of the
error retry counter, that is, where MDSRRTAB.WORKER_PID > 0, and status =
'11' or '12' (for errors that occured in the network provisioning system or in
the GMD environment).
7. Checks if there are any requests in the database for which the status '1'
(error) has not been set, although an error must have occurred in the
processing and the request status should be changed so that request
processing continues.
Some of the most important checks are outlined below. Requests are set to
status '1' if they are older than the configured wait time and one of the
following conditions is fulfilled:
o
8. When there is a problem with connecting to the BSCS database (severity '1'),
a reconnect can be attempted. You can set up reconnect options in the
RAC_Setup.xml registry file. The following options can be set:
o
9. Tries to determine the most appropriate GMD component that should try to
continue the processing of failed requests. Some of the most important rules
that are evaluated are outlined below:
previous
next
Legal Information | LHS Telekommunikation GmbH & Co. KG, 2010. All rights
reserved.
up
previous
next
My Pages
BSCS iX Release 3 > Applications > GMD - Generic Mediation Device > GMD Overview >
Processing Logic > GMD Response Parser DaTA (GMDRESDaTA)
1. Creates a PID file in the <work>/GMD directory. The name of the file is
gmdresdata.<host name>.<pid>.running
If the record retrieved from DaTA is not an RDR, the DXL setup is
corrupt. In this case, GMDRESDaTA cannot reject the record because it
does not know all possible UDS variants and their reject-relevant
attributes (they are different for the various UDS variants). So, if
GMDRESDaTA reads a UDS record of an unknown variant, it writes an
error message to the error log file and terminates.
GMDRESDaTA does not consider how often an RDR was rejected, it processes
RDRs even if they were rejected in an earlier transaction.
5. Writes the response details to the GMD_REQUEST_KEY_VALUES table.
The keys RECEIVED_FROM_CCH and RECEIVED_FROM_RIH are used for the
values received in the acknowledgement RDRs sent by RDH for CCH and by
RDH from RIH.
6. Checks if both RDRs relating to the request have arrived and evaluates the
processing status returned in the acknowledgement RDRs.
7. Compares the content of the RDR with the records in the CUSTOMER_FAMILY
table for the current request.
8. If the processing of the request failed in one or both RDH instances,
GMDRESDaTA sets the request status in MDSRRTAB to 'failed'.
9. If the answers from both RDH instances indicated a successful processing,
GMDRESDaTA finishes the request by making the following changes in the
database:
o
When the above-mentioned tables have been updated and the changes
committed, the request is no longer pending and the involved customers are
available for further family-related changes.
10.Sends an RDR answer to all RDH instances
The RDR contains a COMMIT or a CANCEL message for the family move,
depending on the two responses received from RDH for RIH and RDH for CCH.
Only if both RDH responses indicated a successful processing result, the RDR
answer will contain a commit of the family move request. In all other cases,
the family move request will be cancelled and the RDH instances will rollback
any changes that they made when processing the request.
11.Rejects RDRs for which an error occured in one of the steps above.
12.Commits the database changes as well as the DXL transaction:
DXL and the database do not have a two-phase-commit interface, therefore a
commit is performed first in the database and then in DXL.
If a commit action fails on either side, the following situations occur:
If the database commit was successful but the DXL commit failed, the
updates in the database are committed but the RDR is still in the DaTA
queue from which GMDRESDaTA is reading. It is not possible to get rid
of the RDR, therefore GMDRESDaTA terminates and writes an error
message to its error log file.
up
previous
next
Legal Information | LHS Telekommunikation GmbH & Co. KG, 2010. All rights
reserved.