System and method for creating template-based requests for invocation of an external service interface

WO2026110184A1PCT designated stage Publication Date: 2026-05-28JIO PLATFORMS LTD
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
JIO PLATFORMS LTD
Filing Date
2025-11-13
Publication Date
2026-05-28

AI Technical Summary

Technical Problem

Conventional communication networks face increased development and maintenance overhead, as well as latency, due to the need for creating new codes to invoke external service interfaces for each customer and service, especially when minor changes are required.

Method used

A template-based method and system for dynamically creating requests to invoke external service interfaces, using a retrieving module to fetch templates from a database based on operation and product codes, parsing instructions, determining interface details, and forming structured request bodies for efficient communication.

Benefits of technology

Reduces development and maintenance overhead by using templates to streamline API request preparation, allowing for faster and more efficient communication with external systems without latency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IN2025051784_28052026_PF_FP_ABST
    Figure IN2025051784_28052026_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed is a system (400) and a method (600) for dynamically creating a template- based request for invocation of an external service interface in a communication network. The system retrieves a template for an order data received from one or more input sources and parses the retrieved template sequentially to interpret one or more instructions defined in a predefined format. Based on the one or more instructions, the system determines whether to invoke the external service interface for triggering one or more external systems and accordingly map a name of the external service interface defined in the template with one or more details of the external service interface. The one or more query parameters is appended in a request body of the external service interface. The template-based request is created as a structured request body by aggregating the one or more query parameters and corresponding values into a specific text-based format.
Need to check novelty before this filing date? Find Prior Art

Description

SYSTEM AND METHOD FOR CREATING TEMPLATE-BASED REQUESTS FOR INVOCATION OF AN EXTERNAL SERVICE INTERFACETECHNICAL FIELD

[0001] The embodiments of the present disclosure generally relate to the field of communication networks. More particularly, the present disclosure relates to a system and a method for creating a template-based request for invocation of an external service interface in a communication network.BACKGROUND OF THE INVENTION

[0002] The subject matter disclosed in the background section should not be assumed or construed to be prior art merely due to its mention in the background section. Similarly, any problem statement mentioned in the background section or its association with the subject matter of the background section should not be assumed or construed to have been previously recognized in the prior art.

[0003] With recent advancements in communication networks, there is a massive increase in number of network service providers and number of customers in the communication network. The network service providers offer multiple products and services to the customers such as mobile communication services, fixed line services, broadband, Direct to Home (DTH), etc. With the increase in the products and services provided by the network service providers, the number of customers for each product and the services increases, thereby increasing storage of databases. The details of the customers may be stored in large databases for each product and service.

[0004] In conventional approach, a backend server receiving the details of the customers stores the details in the database. As the number of customers increase, the server stores the details of customers, products, and services in external systems. For each new customer, the server creates a new request with a code to invoke theexternal system to fetch details of the products and services. Also, to perform minor changes to the existing products and services, the server needs to create a new code to invoke the external system. Hence, there is an increase in development and maintenance overhead, and latency.

[0005] In light of the aforementioned challenges, there is a need for an improved system and method that can create a template-based request for invocation of an external service interface to external systems while reducing overhead and latency in code development and maintenance.SUMMARY

[0006] The following embodiments present a simplified summary in order to provide a basic understanding of some aspects of the disclosed invention. This summary is not an extensive overview, and it is not intended to identify key / critical elements or to delineate the scope thereof. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.

[0007] In an embodiment, a method for dynamically creating a template-based request for invocation of an external service interface in a communication network is disclosed. The method includes retrieving, by a retrieving module, a template from a database for an order data received from one or more input sources. The template is retrieved based on at least one operation name and at least one product code included in the order data. The method further includes parsing, by a processing module, the retrieved template sequentially to interpret one or more instructions defined in a predefined format. Further, the method includes determining, by a determination module based on the one or more instructions in the template, whether to invoke the external service interface for triggering one or more external systems. Furthermore, the method includes mapping, by the processing module based on a result of the determination, a name of the external service interface defined in the template with one or more details of the external service interface includes at least one of a Uniform Resource Locator (URL), aheader, a request body, and the one or more query parameters. The method further includes appending, by an appending module, the one or more query parameters in the request body of the external service interface for invocation. Thereafter, the method includes creating, by the processing module, the template-based request as a structured request body by aggregating the one or more query parameters and corresponding values of the one or more query parameters into a specific text-based format.

[0008] In some aspects of the present disclosure, the method includes transmitting, by a transmission module using the external service interface, the structured request body to the one or more external systems over the communication network.

[0009] In some aspects of the present disclosure, includes initializing, by the processing module, one or more variables in the template for retrieving standard configuration parameters and additional parameters from the one or more external systems. Further, the method includes appending, by the appending module, the URL, the header, and the request body includes the one or more query parameters within the one or more variables to form the structured request body. The method further includes receiving, by a reception module based on the structured request body, a response from the one or more external systems using the invoked the external service interface.

[0010] In some aspects of the present disclosure, the method includes appending, by the appending module, one or more sub-parameters as nested objects inside the one or more query parameters by a way of indentation in the request body.

[0011] In some aspects of the present disclosure, the method includes deriving, by the processing module, values of the one or more query parameters from at least one of the order data received from the one or more input sources, the one or more variables defined within the template, the response obtained from the one or more external systems using the invoked the external service interface, or a static text value defined within the template.

[0012] In some aspects of the present disclosure, each of the one or more query parameters and the one or more sub-parameters are defined in the template using a syntax marker, each corresponding value of the one or more query parameters and the one or more sub-parameters are assigned using a predefined keyword, and a hierarchical relationship between the one or more query parameters and the one or more sub-parameters is defined through indentation or nesting represented in the template.

[0013] In some aspects of the present disclosure, the one or more instructions comprise at least one of a variable declaration instruction using a reserved keyword to define the one or more variables of one or more data types, a variable access instruction referencing values of the one or more variables using a predefined token symbol, an invocation instruction to invoke the external service interface for triggering the one or more external systems using the one or more details of the external service interface, and a parameter addition instruction demarcated using the syntax marker for appending the one or more query parameters and corresponding values.

[0014] In another embodiment, a system for dynamically creating a template-based request for invocation of an external service interface in a communication network is disclosed. The system includes a retrieving module, a processing module, a determination module, and an appending module. The retrieving module is configured to retrieve, from a database, a template for an order data received from one or more input sources. The template is retrieved based on at least one operation name and at least one product code included in the order data. The processing module is configured to parse the retrieved template sequentially to interpret one or more instructions defined in a predefined format. The determination module configured to determine, based on the one or more instructions in the template, whether to invoke the external service interface for triggering one or more external systems. The processing module is configured to map, based on a result of the determination, a name of the external service interface defined in the template with one or more details of the external service interface includes at least one of aUniform Resource Locator (URL), a header, a request body, and the one or more query parameters. The appending module is configured to append the one or more query parameters in the request body of the external service interface for invocation. The processing module is configured to create the template-based request as a structured request body by aggregating the one or more query parameters and corresponding values of the one or more query parameters into a specific text-based format.BRIEF DESCRIPTION OF DRAWINGS

[0015] Various embodiments disclosed herein will become better understood from the following detailed description when read with the accompanying drawings. The accompanying drawings constitute a part of the present disclosure and illustrate certain non-limiting embodiments of inventive concepts disclosed herein. Further, components and elements shown in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. For the purpose of consistency and ease of understanding, similar components and elements are annotated by reference numerals in the exemplary drawings.

[0016] FIG. 1 illustrates an environment of a communication network, in accordance with an embodiment of the present disclosure.

[0017] FIG. 2 illustrates an architecture for creating a template-based request in the communication network, in accordance with an embodiment of the present disclosure.

[0018] FIG. 3 illustrates a block diagram depicting a plurality of channels and services in the communication network, in accordance with an embodiment of the present disclosure.

[0019] FIG. 4 illustrates a block diagram of a system for creating the templatebased request for invocation of an external service interface in the communication network, in accordance with an embodiment of the present disclosure.

[0020] FIG. 5 illustrates a process flow diagram depicting a method for creating the template-based request in a single specific text-based format in the communication network, in accordance with an embodiment of the present disclosure.

[0021] FIG. 6 illustrates a process flow diagram depicting a method for dynamically creating the template-based request for invocation of the external service interface, in accordance with an embodiment of the present disclosure.

[0022] FIG. 7 illustrates a schematic block diagram of a computing system for creating the template-based request, in accordance with an embodiment of the present disclosure.DETAILED DESCRIPTION OF THE INVENTION

[0023] Inventive concepts of the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, in which examples of one or more embodiments of inventive concepts are shown. Inventive concepts may, however, be embodied in different forms and should not be construed as limited to the embodiments set forth herein. Further, the one or more embodiments disclosed herein are provided to describe the inventive concept thoroughly and completely, and to fully convey the scope of each of the present inventive concepts to those skilled in the art. Furthermore, it should be noted that the embodiments disclosed herein are not mutually exclusive concepts. Accordingly, one or more components from one embodiment may be tacitly assumed to be present or used in any other embodiment.

[0024] The following description presents various embodiments of the present disclosure. The embodiments disclosed herein are presented as teaching examples and are not to be construed as limiting the scope of the present disclosure. Thepresent disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, including the exemplary design and implementation illustrated and described herein, but may be modified, omitted, or expanded upon without departing from the scope of the present disclosure.

[0025] The following description contains specific information pertaining to embodiments in the present disclosure. The detailed description uses the phrases “in some embodiments” which may each refer to one or more or all of the same or different embodiments. The term “some” as used herein is defined as “one, or more than one, or all.” Accordingly, the terms “one,” “more than one,” “more than one, but not all” or “all” would all fall under the definition of “some.” In view of the same, the terms, for example, “in an embodiment” refers to one embodiment and the term, for example, “in one or more embodiments” refers to “at least one embodiment, or more than one embodiment, or all embodiments.”

[0026] The term “comprising,” when utilized, means “including, but not necessarily limited to;” it specifically indicates open-ended inclusion in the so-described one or more listed features, elements in a combination, unless otherwise stated with limiting language. Furthermore, to the extent that the terms “includes,” “has,” “have,” “contains,” and other similar words are used in either the detailed description, such terms are intended to be inclusive in a manner similar to the term “comprising.”

[0027] In the following description, for the purposes of explanation, various specific details are set forth to provide a thorough understanding of embodiments of the present disclosure. It will be apparent, however, that embodiments of the present disclosure may be practiced without these specific details. Several features described hereafter can each be used independently of one another or with any combination of other features.

[0028] The description provided herein discloses exemplary embodiments only and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the foregoing description of the exemplary embodiments willprovide those skilled in the art with an enabling description for implementing any of the exemplary embodiments. Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it may be understood by one of the ordinary skilled in the art that the embodiments disclosed herein may be practiced without these specific details.

[0029] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein the description, the singular forms "a", "an", and "the" include plural forms unless the context of the disclosure indicates otherwise.

[0030] The terminology and structure employed herein are for describing, teaching, and illuminating some embodiments and their specific features and elements and do not limit, restrict, or reduce the scope of the present disclosure. Accordingly, unless otherwise defined, all terms, and especially any technical and / or scientific terms, used herein may be taken to have the same meaning as commonly understood by one having ordinary skill in the art.

[0031] The various aspects including the example aspects are now described more fully with reference to the accompanying drawings, in which the various aspects of the disclosure are shown. The disclosure may, however, be embodied in different forms and should not be construed as limited to the aspects set forth herein. Rather, these aspects are provided so that this disclosure is thorough and complete, and fully conveys the scope of the disclosure to those skilled in the art. In the drawings, the sizes of components may be exaggerated for clarity.

[0032] Various aspects of the present disclosure provide a system and a method for dynamically creating a template-based request for invocation of an external service interface in a communication network.

[0033] In another aspect of the present disclosure, the system and the method utilize template to request an external system for reducing development and maintenance overhead.

[0034] Several key terms used in the description play pivotal roles in facilitating the system functionality. In order to facilitate an understanding of the description, the key terms are defined below.

[0035] An “Application Programming Interface (API)” in the present disclosure may be a set of rules or protocols that enables applications or entities to communicate with each other to exchange data, features, and functionality. In the present disclosure the API may act as the external service interface to enable an application server to communicate with the external system. For instance, the application server may use the API to communicate with the external system using the API to retrieve a customer's profile information from a telecom database.

[0036] A “template” in the present disclosure may be predefined layouts or frameworks used to streamline development tasks of operations or products.

[0037] In conventional approach, a backend server receiving a request from a customer may invoke the external service interface such as the API to the external system to fetch details on products or services stored in the external system. To invoke the API to the external system, the server may generate a request body based on a logic embedded in a code. To perform minor changes to existing API and preparation of request for new API in business logic, the server may generate new code binaries followed by testing in higher environments before delivering in production setup. Hence, there is an increase in development and maintenance overhead, and latency. To overcome the issues in conventional approach, the present disclosure may relate to the system and the method for transmitting template-based requests to the external systems. The system and the method may use template to request the external system, thereby lifting routine developmental task and managing large codebase for preparing API request body for different operations as followed in the conventional approach.

[0038] FIG. 1 illustrates a diagram depicting an environment of a communication network 100, in accordance with an embodiment of the present disclosure. The embodiment of the communication environment 100 shown in FIG. 1 is forillustration only. Other embodiments of the communication environment 100 may be used without departing from the scope of this disclosure.

[0039] The communication environment 100 (hereinafter may also be referred to as the “communication system 100’ or “communication network 100”) may include various components such as a network 102, a user device 104, the application server 106 (hereinafter may also be referred to as the “server 106”), other devices 108, clients 110, a processing module 112 and a database 114. The processing module 112 may comprise a central processing unit (CPU) and a graphics processing unit (GPU) for performing computations and handling data processing tasks. The procession module 112 may be present inside the USER DEVICE 104 and the server 106. The database 114 may store and manage structured data. The communication system 100 may include the user device 104 on which one or more applications are installed to communicate with the server 106. The user device 104 may include smartphones, tablets, laptops, or desktop computers. The server 106 may handle requests from the user device 104 and may perform a plurality of tasks such as processing, storage, and data retrieval. The server 106 may be a physical machine or a virtual machine in a cloud environment.

[0040] The communication system 100 may include other devices 108 such as Internet of Things (loT) devices or any other connected devices to transmit signals to nearby user devices. The communication system 100 may include one or more clients 110 to represent the software applications or interfaces that run on the user device 104 to communicate with the server 106. The clients 110 may be web browsers or a program requesting data from the software applications running on the user device 104. The communication system 100 may include the network 102 for enabling data transmission and communication between the various components of the communication system 100. The network 102 may be a local area network (LAN), a wide area network (WAN), or the internet.

[0041] The user device 104 may be, at least one DU, at least one Mobile Termination (MT) unit, and at least one relay. Typically, the term “Set Top Box(STB)”, “user equipment” or “UE” can refer to any component such as “mobile station”, “subscriber station”, “remote terminal”, “wireless terminal”, “receive point”, or “end user device”.

[0042] The network 102 may include suitable logic, circuitry, and interfaces that may be configured to provide several network ports and several communication channels for transmission and reception of data related to operations of various entities of the communication network 100. Each network port may correspond to a virtual address (or a physical machine address) for transmission and reception of the communication data. For example, the virtual address may be an Internet Protocol Version 4 (IPV4) (or an IPV6 address) and the physical address may be a Media Access Control (MAC) address. The network 102 may be associated with an application layer for implementation of communication protocols based on one or more communication requests from the various entities of the communication network 100.

[0043] The communication data may be transmitted or received via the communication protocols. Examples of the communication protocols may include, but are not limited to, Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP), Domain Network System (DNS) protocol, Common Management Interface Protocol (CMIP), Transmission Control Protocol and Internet Protocol (TCP / IP), User Datagram Protocol (UDP), Long Term Evolution (LTE) communication protocols, or any combination thereof. In some aspects of the present disclosure, the communication data may be transmitted or received via at least one communication channel of several communication channels in the network 102. The communication channels may include, but are not limited to, a wireless channel, a wired channel, a combination of wireless and wired channel thereof. The wireless or wired channel may be associated with a data standard which may be defined by one of a Local Area Network (LAN), a Personal Area Network (PAN), a Wireless Local Area Network (WLAN), a Wireless Sensor Network (WSN), Wireless Area Network (WAN), Wireless Wide Area Network (WWAN), a metropolitan area network (MAN), a satellite network, the Internet, anoptical fiber network, a coaxial cable network, an infrared (IR) network, a radio frequency (RF) network, and a combination thereof. Aspects of the present disclosure are intended to include or otherwise cover any type of communication channel, including known, related art, and / or later developed technologies.

[0044] The server 106 may be a network of computers, a software framework, or a combination thereof, that may provide a generalized approach to create a server implementation. Examples of the server 106 may include, but are not limited to, personal computers, laptops, mini -computers, mainframe computers, any nontransient and tangible machine that can execute a machine-readable code, cloudbased servers, distributed server networks, or a network of computer systems. The server 106 may be realized through various web-based technologies or any webapplication framework. In other aspects of the present disclosure, the server 106 may be configured to fetch order related details from the external systems by transmitting template-based requests in the communication network 100.

[0045] FIG. 2 illustrates an architecture 200 for creating a template-based request in the communication network 100, in accordance with an embodiment of the present disclosure. The architecture 200 may comprise a plurality of channels 202 (hereinafter referred to as “channels 202”, a load balancer 204, a Subscription Engine (SE) platform 206, a Customer Relationship Management (CRM) platform 208, a billing and invoice system 210, a product catalogue 212, a Data Information Framework (DIF) Platform 214, a notification hub 216, an Operations Support Systems (OSS) Fulfilment Management System (FMS) 218, a Unified Assurance Platform (UAP) System 220, and a Geographic Information System (GIS) 222.

[0046] The channels 202 may comprise a Dashboard 202-1, a Self-Care 202-2, a Web Portal 202-3, a Point of Sale (POS) / or a Mobile POS (mPOS) 202-4, a Referrer Basic 202-5, an Inbound / Outbound Self or Customer Care 202-6, Others 202-7, a CRM User Interface (UI) 202-8. An end user may access the channels to perform various tasks for utilizing services provided by the CRM 208. The end user and the channels may communicate with the other entities of the architecture 200via the load balancer 204. The channels 202 may act as a UI to enable the end user to browse, buy, and sell products, make payments, manage subscriptions, etc. The load balancer 204 may be a networking device or an application that distributes and balances the incoming traffic to provide high availability, efficient utilization of servers, and high performance. The SE platform 206 may enable network operators to handle multiple content platforms and manage end-to-end lifecycle of subscribers. The billing and invoice system 210 may manage a process of invoicing and billing customers by using billing software. The billing and invoice system 210 may perform automating payment collection, issuing invoices automatically along with payment reminders and tracking, and other tasks to streamline the invoicing and payment process. The product catalogue 212 may enable detailed configuration of product specifications and offers, which can be combined in numerous variants. The product catalogue 212 may supports provisioning of reference data services like tax model, discount, geographic location, sales channel, plan specification, composite price, and plan offer with required mappings. The CRM platform 208 may provide lead generation, customer support, order management, document verification, and a host of other processes.

[0047] The DIF platform 214 may provide an information / data reference model along with a common vocabulary for implementing business processes. The DIF platform 214 may communicate with the channels 202 via the load balancer 204 using a WebSocket. The WebSocket may be a real-time, bidirectional, event-driven communication protocol that provides persistent connections between the client 110 and the server 106. The channels 202 and the DIF platform 214 may communicate with the other entities using Hypertext Transfer Protocol (HTTP). HTTP may be a request-response protocol that serves static resources and invokes server-side processing.

[0048] The notification hub 216 may be enabled in user devices to receive a real time update with respect to ongoing activity being conducted at the CRM. The notification hub 216 may send alerts and notifications in the form of a text message or a type of triggered email. The OSS FMS 218 may act as the external system tothe CRM 208 and may support functions like network inventory, service provisioning, network configuration, and fault management. The OSS FMS 218 may provide a fully programmable and configurable provisioning engine for dynamic provisioning. The OSS FMS 218 may enable unified inventory management for a wide range of inventory devices. The OSS FMS 218 may support automatic failover between sites during provisioning if a network element is down. The UAP 220 may enable network operators to track and resolve customer complaints and issues, with modules for ticket creation, assignment, tracking, escalation, and reporting. The GIS 222 may analyze and display geographically referenced information using data attached to a unique location.

[0049] FIG. 3 illustrates a block diagram depicting a plurality of channels 202 and services in the communication network 100, in accordance with an embodiment of the present disclosure. The plurality of services may include Gateway (GW) services 302 and CRM platform services 304. The GW services 302 may comprise an Edge Load Balancer 302-1 and a Common API Framework (CAPIF) 302-2. The CRM platform services 304 may comprise a DIF Microservice 304-1, a DIF Cache Server 304-2, DIF Persistence Database 304-3, DIF Distributed Streaming Platform 304- 4, and a DIF 0AM Server 304-5.

[0050] The Edge load balancer 302-1 may enable high-availability service and distributes the network traffic load among multiple servers. The CAPIF 302-2 may authenticate an API invoker, authorizes invoker before using API services, publishes, and stores API information along with charging and logs. The DIF Microservice 304-1 may be an independently deployable software in which complex applications are composed of small and independent processes. The DIF Microservice 304-1 may be developed as a suite of small services, each running in its own process and communicating with lightweight mechanisms such as the APIs. The DIF Microservice 304-1 may adhere to a well-defined API. The DIF cache server 304-2 may be a dedicated network server or service acting as a server that saves data locally in a relational database 114. The DIF persistence database 304-3 may permanently store data in a secondary storage of object-oriented databases. Thedata stored in the DIF persistence database 304-3 may be shared across various applications and programs. The DIF Distributed Streaming Platform 304-4 may provide real-time streaming data pipelines and applications that adapt to the data streams. The DIF Distributed Streaming Platform 304-4 may combine messaging, storage, and stream processing to allow storage and analysis of both historical and real-time data. The DIF 0AM Server 304-5 may manage overall operations, administration, and maintenance of master data.

[0051] FIG. 4 illustrates a block diagram of a system 400 for creating the templatebased request for invocation of the external service interface in the communication network 100, in accordance with an embodiment of the present disclosure. The system 400 may include the server 106, the user device 104, and the database 114. The API communication between the user device 104 and the server 106 may use Representational State Transfer (RESTful) protocol over Hypertext Transfer Protocol Secure (HTTPS).

[0052] The server 106 includes a communication interface 412, a processor 414, one or more modules 416 (hereinafter also referred to as the “modules 416”), a memory 418 coupled to the processor 414, and a database 420 on the server 106. The processor 414 may control the operation of the server 106. The processor 414 may also be referred to as a Central Processing Unit (CPU). The memory 418 may provide instructions and data to the processor 414 for performing functions of the server 106. The memory 418 may include a Random Access Memory (RAM), a Read-Only Memory (ROM) and a portion of the memory 418 may also include Non- Volatile Random Access Memory (NVRAM). The processor 414 may perform logical and arithmetic operations based on instructions stored within the memory 418. The communication interface 412 may allow transmission and reception of data between the server 106 and the network 102. The communication interface 412 may include a transmitter, a receiver, and a single or multiple transmit antennas electrically coupled to the transmitter and the receiver of the communication interface 412.

[0053] The communication interface 412 may be configured to enable the server 106 to communicate with various entities of the system 400 via the network 102. Examples of the communication interface 412 may include, but are not limited to, a modem, a network interface such as an Ethernet card, a communication port, and / or a Personal Computer Memory Card International Association (PCMCIA) slot and card, an antenna, a radio frequency (RF) transceiver, a digital signal processor, a coder-decoder (CODEC) chipset, a subscriber identity module (SIM) card, and a local buffer circuit. It will be apparent to a person of ordinary skill in the art that the communication interface 412 may include any device and / or apparatus capable of providing wireless or wired communications between the server 106 and various other entities of the system 400.

[0054] In one or more embodiments, the server 106 may be coupled to an external database 114 that provides data storage space to the server 106. The database 114 may store information related to configuration parameters and other relevant information needed for the operation of the server 106. The database 114 may be accessed and updated by the server 106 for accessing product catalogue stored in the database 114. The database 114 may correspond to a centralized database system configured to store and manage structured data, such as network-related data and configurations. The database 114 may be large databases of same type or combination of different type such as structured databases, non-structured databases, or distributed databases. The database 114 may be a relational database organizing related data such as in a table, or a non-relational database organizing graphical and time series data. The database 114 may be implemented as a centralized database, Relational Database Management System (RDBMS), Non- Relational Database Management System, and Hierarchical Database Management System, and Network Database Management System. The server 106 may be connected to a storage medium for storing and managing the data. The storage medium may generally be one or more of, without limitation, disk drives, hard-disk arrays, solid state storage devices, Network Attached Storage (NAS) devices, tape libraries or other magnetic, non-tape storage devices, and optical media storagedevices. In a non-limiting example, external database 114 may a cloud-based database offering enhanced scalability and redundancy features.

[0055] The user device 104 may include a processor 402, a memory 404 coupled to the processor 402, a communication interface 406, and a input / output (I / O) interface 408 comprising a user interface (UI) (410). The processor 402 may control an operation of the user device 104. The processor 402 may also be referred to as the CPU. The memory 404 may provide instructions and data to the processor 402 for performing several functions. The memory 404 may include a Random Access Memory (RAM), a Read-Only Memory (ROM), and a portion of the memory 404 may also include Non-Volatile Random Access Memory (NVRAM). The processor 402 may perform logical and arithmetic operations based on instructions stored within the memory 404. The communication interface 406 may allow transmission and reception of data between the user device 104 and the network 102. The communication interface 406 may include a transmitter, a receiver, and a single or a plurality of transmit antennas electrically coupled to the transmitter and the receiver.

[0056] The user device 104 may further be capable of displaying (or presenting) results determined by the server 106 to a user through a console (not shown) on the user device 104 hosted by the server 106. The console on the user device 104 may be configured as a computer-executable application, to be executed by the user device 104. The console may include suitable logic, instructions, and / or codes for executing various operations and may be controlled by the server 106. The one or more computer executable applications may be stored on the user device 104.

[0057] The I / O interface 408 may include suitable logic, circuitry, interfaces, and / or codes that may be configured to receive input(s) and present (or display) output(s) on the server 106. For example, the I / O interface 408 may have an input interface and an output interface. The input interface may be configured to enable a user to provide input(s) to trigger (or configure) the server 106 to perform various operations such as but not limited to, providing input(s) to initiate fetching of thecommunication data from the user, configure the server 106 to fetch the communication data periodically, etc. Examples of the input interface may include, but are not limited to, a touch interface, a mouse, a keyboard, a motion recognition unit, a gesture recognition unit, a voice recognition unit, or the like. Aspects of the present disclosure are intended to include or otherwise cover any type of the input interface including known, related art, and / or later developed technologies without deviating from the scope of the present disclosure. The output interface may be configured to display (or present) output(s) by the server 106. In some aspects of the present disclosure, the output interface may provide the output(s) based on an instruction provided via the UI 410. Examples of the output interface of the I / O interface 408 may include, but are not limited to, a digital display, an analog display, a touch screen display, an appearance of a desktop, and / or illuminated characters.

[0058] The processors 402 and 414 may include one or more general purpose processors and / or one or more special purpose processors, a microprocessor, a digital signal processor, an application specific integrated circuit, a microcontroller, a state machine, or any type of programmable logic array. The processors 402 and 414 may include may include an intelligent hardware device including a general - purpose processor, such as, for example, and without limitation, a Central Processing Unit (CPU), an Application Processor (AP), a dedicated processor, or the like, a graphics-only processing unit such as a Graphics Processing Unit (GPU), a microcontroller, a Field-Programmable Gate Array (FPGA), a programmable logic device, a discrete hardware component, or any combination thereof.

[0059] The memories 404 and 418 may further include, but not limited to, non- transitory machine-readable storage devices such as hard drives, magnetic tape, floppy diskettes, optical disks, compact disc read-Only Memories (CD-ROMs), and magneto-optical disks, semiconductor memories, such as ROMs, RAMS, programmable read-only memories PROMs), erasable PROMs (EPROMs), electrically erasable PROMs (EEPROMs), flash memory, magnetic or optical cards, or other type of media / machine-readable medium suitable for storing electronic instructions.

[0060] The modules 416 may include a reception module 422, a retrieving module 424, a processing module 426, a determination module 428, an appending module 430, and a transmission module 432. In an embodiment, the modules 416 may be combined to a single module, or each module of the modules 416 may be further subdivided into different modules with divided responsibilities.

[0061] The modules 416 may be implemented as a combination of hardware and programming (for example, programmable instructions) to implement one or more functionalities of the server 106. In non-limiting examples, described herein, such combinations of hardware and programming may be implemented in several different ways. For example, the programming for the modules 416 may be processor-executable instructions stored on a non-transitory machine-readable storage medium and the hardware for the processor 414 may comprise a processing resource (for example, one or more processors), to execute such instructions. In the present examples, the machine-readable storage medium may store instructions that, when executed by the processing resource, implement the modules 416. In such examples, the server 106 may also comprise the machine-readable storage medium storing the instructions and the processing resource to execute the instructions, or the machine-readable storage medium may be separate but accessible to the server 106 and the processing resource. In other examples, the modules 416 may be implemented using an electronic circuitry.

[0062] Although FIG. 1 through FIG. 4 illustrate one example of the environment of the communication network 100 and the system 400, various changes may be made to FIG. 1 through FIG. 4. For example, the system 400 may include any number of user devices in any suitable arrangement. Further, in another example, the server 106 may include any number of components in addition to the components shown in FIG. 4. Further, various components in FIG. 1 through FIG. 4 may be combined, further subdivided, or omitted and additional components may be added according to particular needs.

[0063] In one embodiment, templates may be defined for preparing a request body which is to be used while invoking the API to the external system. The templates may be defined based on operation name and / or product name. The template may be defined in a user-friendly language. The template may not be lengthy codes and may not use hard and fast code language and specific text-based tags for parameters description. The template may be defined based on the logic for each API. The templates may be in short format and may be created in user-friendly language which may guide the server 106 to prepare requests to be triggered in the API. Service providers may train a team managing production or higher testing environments rigorously for one-time and guide the flow to handle templates, thereby reducing development lifecycles for modification in API request body schema or addition of new API and quickly delivering products without latency.

[0064] In some embodiments, when the business logic is complex and the templates may not be defined for a particular API, usual code binaries may be sent to invoke the external systems. The server 106 may first look-up for the template to invoke the API. If there is no template for the API, then the server 106 may look-up for a class implementing API generation logic. Therefore, the present disclosure may provide inclusivity to framework. Also, the present disclosure may avoid development and maintenance overhead for API request body preparation to be sent to the external systems during order journey and customer onboarding journey.

[0065] In some embodiments, the server 106 may receive an order creation request from an end user, for instance the channel 202. The server 106, for instance the CRM 208, may trigger a request body creation for invoking the API for the order received to the external system, for instance the OSS FMS 218, using a user-friendly template. The server 106 may use a code to retrieve template document based on an operation name and a product code. The server 106 may parse the template line by line. The template may be added with API details, query parameters, and values to form a phrase. Once the template parsing is completed, the server 106 may convert the request body into a specific text-based format and send the API to the external system, for instance the OSS FMS 218. The specific text-based format may be usedin the order creation request as well as in the template. The specific text-based format may be a human -readable and self-describing format, making it relatively easy to understand the structure and content of the template, even for those without extensive programming experience. The specific text-based format may facilitate data representation and interchange, particularly in contexts like web development, configuration management, and data transformation.

[0066] In some aspects of the present disclosure, the template may comprise a code for invoking the API to get response from the external system along with a set of instructions for including the API details as comments in the code. The set of instructions may be defined in a user-friendly language. The template may be defined as short, easy-to-use-, and guided using the user-friendly language. The set of instructions may be provided in the template to edit the template based on the order creation request using a set of keywords or phrase. The keywords and phrase may be used to include variables, queries, and corresponding values associated with the queries. In a non-limiting example, the keywords may include hyphens (-), dollar sign ($), semicolon (;), double quotes (“), let, Invoke API, “value:”, “;next Line”, and “-parameter Name-”. The keyword “hyphen” may denote a field in which the server 106 may look for parameters.

[0067] In a non-limiting example, if the server 106 needs to look for customer identity field of the order data, then the template may be defined with a notation “Order-customerDetails.customerld”. If the server 106 needs to look for a nested field first name inside customer name field, then the template may be defined with a notation “Order-customerDetails.customerName.firstName”. The keyword “dollar sign ($)” may be used for addressing a variable value instead of text. The keyword “semicolon (;)” may be used as a delimiter. The keyword “double quotes (“)” may be used for quoting a string or a text. The keyword ‘let’ may be used for declaring a new variable. The keyword “Invoke API:” may be used to prompt the server 106 to hit an API with details. The keyword “value:” may provide value to parameters. The keyword “;<next Line>” may be used to jump to next parameter. The keyword “-<parameter Name>-” may be used to add a parameter in the request.

[0068] In one embodiment of the present disclosure, the reception module 422 may receive a order creation request from one or more input sources. For instance, a user may send the order creation request from the UI 410 of the user device 104 through the channels 202. The order creation request may be in a specific text-based format. The request may comprise a set of request parameters. The request parameter may comprise three different types of values such as, plain text, reference value code, and product catalogue data.

[0069] For instance, the order creation request may be in the specific text-based format. The request may be initiated from the channels 202 to the CRM 208. In a non-limiting example, a sample order creation request may comprise one or more fields and values for the corresponding fields. The one or more fields may include order reference number, order type, customer name, contact details, shipping or permanent address, billing address, gender, and nationality.

[0070] The plain text may comprise a set of attributes such as, a mobile number, an email id, a first name, a last name, a pin code, a building name, etc. The reference value code may be maintained by telecom organizations in a centralized form of code-name pairs. Data in request body of the order creation request body may be in form of codes but displayed in form of name in a User Interface (UI) of the channels 202. The reference value codes may comprise customer name and salutation, address with type, state, country, gender, and nationality of the customer.

[0071] In a non-limiting example, a sample reference value code is illustrated below in Table 1 :Table 1 : Sample Reference Value Code

[0072] The product catalogue data may be maintained by the telecom organizations in a centralized form in the product catalogue 212. The product catalogue data may comprise details of products, services, resources, plans, etc. Each product may be associated with product offering parameters and may be driven by the product catalogue 212. The details of the product may be fetched from the product catalogue 212 using product identity.

[0073] In some aspects of the present disclosure, when the reception module 422 receives the order creation request, the processing module 426 may clip customer details from the request and may store in one table. The processing module 426 may store the order details in another table while maintaining a customer identity field inside the order data for customer reference. The order creation request may comprise an order reference number, an order type, customer details comprising customer-name, contact details, address, gender, and nationality.

[0074] In a non-limiting example, the CRM 208 (the server 106) may trigger order creation request as a provisioning request in the specific text-based format to the OSS FMS 218 (the external system). A sample provisioning request in the specific text-based may include order identity (ID), customer name, contact details, customer ID, shipping address. The customer-name may include fist name, last name, and salutation. The contact details may comprise mobile number and email ID.

[0075] In some aspects of the present disclosure, the reference value code may pertain to reference data look-up in a telecommunications service provider (telco)Business Support Systems (BSS) domain. The telco BSS may be used to run business operations towards the customers.

[0076] FIG. 5 illustrates a process flow diagram depicting a method 500 for creating the template-based request in a single specific text-based format in the communication network, in accordance with an embodiment of the present disclosure. The method 500 comprises a series of operation steps indicated by blocks 502 through 514 performed by the processor 414 using the one or more modules 416 of the system 400. The method 500 starts at block 502.

[0077] At block 502, the retrieving module 424 may retrieve a template retrieve, from a database, a template for an order data received from one or more input sources. The order data may be present in the order creation request. The retrieving module 424 may retrieve the template based on the operation name and the product code. The template may be stored in the database 114 as a normal text file with a template name. For instance, the template may be stored as the normal text file in a folder with the template name as Template_<FMS Provisioning>_<Product Code>. Based on a combination of the operation name and the product code, the server 106 may identify the template name and open the template file. The server 106 may create the order based on the template.

[0078] In some aspects of the present disclosure, the template may comprise basic details of the order data. In a non-limiting example, a sample template may include order ID, customer name, customer ID, and contact details.

[0079] The sample template may comprise only order ID, customer first name, customer last name, customer ID, mobile number and email of the customer. However, the order creation request received by the reception module 422 comprised extras fields such as customer salutation and shipping address. Hence, these details need to be included in the template.

[0080] At block 504, the processing module 426 may parse the template line by line. The templates may be parsed by sequentially by a process that breaks down thetemplate into smaller parts, replacing placeholders with actual data. The template may be parsed (not limited to) using top-to-bottom approach, bottom-to-top approach, and sequentially line-by-line. The parsing may identify variables or expressions within the template and substitute them with data from a source string or a data payload. In a non-limiting example, the processing module 426 may substitute the placeholder “ . . . ” for the field “order ID” with the value “ORDER xx” derived from the order creation request. The processing module 426 may substitute the placeholder “ ...” for the field “customer last name” with the value “surname” derived from the order creation request.

[0081] In some aspects of the present disclosure, to include new details in the template, one or more instructions may be provided in the template as comments in a user-friendly language. The processing module 426 may follow the one or more instructions in the template to (not limited to) add new variables and values, invoke API, and add additional query parameters. The processing module 426 may parse the retrieved template sequentially line-by-line to interpret the one or more instructions defined in a predefined format or a human-readable format. For instance, the one or more instructions may be provided as comments in the template. The one or more instructions may comprise at least one of a variable declaration instruction using a reserved keyword to define the one or more variables of one or more data types, a variable access instruction referencing values of the one or more variables using a predefined token symbol, an invocation instruction to invoke the external service interface for triggering the one or more external systems using one or more details of the external service interface, and a parameter addition instruction demarcated using a syntax marker for appending the one or more query parameters and corresponding values.

[0082] In some aspects of the present disclosure, based on the one or more instructions in the template for the variable declaration, the processing module 426 may initialize new variables in the template for defining additional parameters after using the reserved keyword, for instance, adding a word ‘let’ in the template. The additional parameters may be one or more query parameters in the template. Thetemplate may support variable declaration starting with the keyword ‘let’. The variable type may be an array list, a map, a string, or a number. The value of the variables defined in the template may be accessed using the dollar sign keyword. For instance, if the variable type is an array, the processing module 426 may handle the “add” operations done on array field in the template. If the variable type is a map, the processing module 426 may handle “put” operation on the variable in the template. In a non-limiting example, the processing module 426 may add the field “customer salutation” in the template as the variable.

[0083] At block 506, based on the one or more instructions in the template for to invoke the external service interface (alternatively referred to as the API), the determination module 428 may determine whether to invoke the API to trigger the external system for retrieving standard configuration parameters and the one or more query parameters by encountering a code or a specific text-based format in the template from beginning to the end. In a non-limiting example, if the server 106 needs to obtain a customer detail from the external system, then the server 106 may need to invoke the API to trigger the external system. The template may have the code “Invoke API:” keyword. While parsing the template, if server 106 needs to obtain the customer detail, then the server 106 may use “Invoke API:” keyword to invoke the API to trigger the external system.

[0084] In some aspects of the present disclosure, if any data in the request needs an API invocation, the template may support through “Invoke API:” keyword. When the processing module 426 encounter the “Invoke API:” keyword, the processing module 426 may expect an API name immediately after the keyword in single quote. For instance, the ‘GET REFERENCE VALUE’.

[0085] The processing module 426 may map the API name along with the one or more query parameters in the code with details of API to trigger the external system. The details of API to trigger the external system may include a Uniform Resource Locator (URL), a header, a request body, and one or more query parameters. The details of API such as the query parameters or the header may contain metadata inT1 the template. The metadata may be defined in the same line immediately after the ‘Invoke API:<API Name>’ phrase ended with semicolon. The appending module 430 may append the URL, the header, and the request body comprising the one or more query parameters within the one or more variables to form a structured request body. For instance, the customer salutation may require input from the external system. Hence, the customer salutation may be added in the query parameters and may be sent to the external system as a request API.

[0086] In some aspects of the present disclosure, the processing module 426 may determine whether a particular parameter is to be retrieved by invoking the API to the external system and getting value in response. If result of the determination is yes, the processing module 426 may mention configurations of the API including the query parameters, the header, or the request body to send along with the URL details. The details of the API may be configured in different location other than a location of the API name. The processing module 426 may mention the API name to be invoked and the details of the API that may be configured in different location in the code. The processing module 426 may define the one or more query parameters along with the standard parameters in the code sent to the external system.

[0087] At block 508, based on the one or more instructions in the template for the parameter addition demarcated using the syntax marker for appending the one or more query parameters and corresponding values, the appending module 430 may append the one or more query parameters to the code for invoking the API. The one or more query parameters may be present in different a location. The location of the one or more query parameters may be mentioned as a specific path notation in the code. The specific path notation may denote an absolute location of the one or more query parameters in a specific text-based format hierarchy of input data object. The appending module 430 may append the query parameters and the request body details in the code to form a phrase. In a non-limiting example, the appending module 430 may append the query parameters in the code using the syntax markers, for instance, between hyphens and add indentation to sub -parameters wheninitialized inside the query parameter. The appending module 430 may append the query parameters in the request body of the API to be invoked using a hyphen symbol in the start and in the end. The query parameters may be key-value pairs appended to the URL to pass data to the external system for filtering, sorting, or pagination. The sub -parameters may be used as nested objects under the query parameters to refine the filtering, sorting, or pagination.

[0088] For instance, the query parameter “country” may be passed through the API to the external system. The external system may be a telecom database. The query parameter “country” may be defined within the hyphen symbol in the template, to differentiate between the header and the request body.

[0089] In some aspects of the present disclosure, a hierarchical relationship between the query parameters and the sub-parameters may be defined through indentation or nesting represented in the template. The indentation may be supported by the template while adding parameters. If no indentation is present, the query parameter may be appended at the root level. If the sub-parameters are to be treated as child of the query parameter, the sub-parameter may be written with indentation below a parent query parameter.

[0090] For instance, if the sub-parameter called “customer first name” is to be appended in the request body inside the query parameter called “customer-name”, then the sub-parameter may be included in the template using the indentation under the query parameter.

[0091] The sample template may be represented the URL comprising the header, the query parameter, the sub-parameter nested inside the query parameter, and the request body and sent to the external system as the request API. The appending module 430 may append the sub-parameters as nested objects inside the query parameters by a way of indentation of the code.

[0092] At block 510, each corresponding value of the query parameters and the subparameters may be assigned using a predefined keyword. For instance, theprocessing module 426 may provide a value to the phrase and refer each value using the predefined keyword such as a dollar sign ($). The value of the query parameter added may be identified using “value:” phrase following the parameter addition.

[0093] The provisioning request in the request body to be generated may be centered around the order creation request in the specific text-based format received from the channels 202. Hence, the order creation request in the specific text-based format may be the input.

[0094] At block 512, based on the one or more instructions in the template for the variable access by referencing values of the one or more variables using the predefined token symbol, the processing module 426 may refer to values of the one or more query parameters and the sub -parameters using the dollar sign ($). The processing module 426 may derive the values of the one or more query parameters from at least one of the order data received from the one or more input sources, the one or more variables defined within the template, the response obtained from the external systems using the invoked the API, or a static text value defined within the template.

[0095] In a non-limiting example, to access value in order creation request in the specific text-based format, the phrase ‘Order’ may be used. The value of order reference number field in order creation request in the specific text-based format may be accessed and stored in new parameter called order ID, using the phrase “$order reference number”.

[0096] At block 514, the appending module 430 may use a nomenclature to append parameters in hierarchical manner with values derived from the order data, another API invocation result, or simply as free text. Once the template parsing is complete, the processing module 426 may convert the request body into string and send the details of the API over a Representational State Transfer (REST) API interface to the external system, for instance the OSS FMS 218. The processing module 426 may convert the request body to create a structured request body by aggregating the query parameters and corresponding values of the query parameters into the specifictext-based format. The structured request body may be the completed template that may be readily transmitted to the external system for getting the response.

[0097] The transmission module 432 may transmit the code as the API in a specific text-based format to the external system. The template for the request may be maintained as a configuration.

[0098] The processing module 426 may save the template in the folder to use the template as a configuration for further use. The transmission module 432 may transmit the code in the sample template as the API to the external system to fetch the details for the creating the order.

[0099] In some embodiments, the response from the external system may be a status code and / or a data payload. The status code may indicate a success or failure of the request, an authentication or forbidden response for the request, or a general error message for the request. The data payload may be a set of values requested in the query parameters of the request body sent from the server 106 to the external system.

[0100] In some aspects of the present disclosure, the response from the external system may be obtained as the REST API. The response API may comprise a status line, headers, and response body. The status line may comprise the status code to indicate whether the request was successful. The headers may comprise key-value pairs that contain metadata information about responses, like content type and length, cookies for the server to store, and rate limit details. The response body may comprise the actual response for the query in the request. The response body may contain items like the requested data, an acknowledgment that a resource was created or updated, an error message, and images. The response API may be in the specific text-based format.

[0101] The response API may be set to a variable. The processing module 426 may obtain a response from the external systems through the variables. For instance, if response of the API is the specific text-based string and data-of-interest lies insideresult parameter inside app-data. The processing module 426 may obtain the response API for the request body “customer salutation”.

[0102] In some aspects of the present disclosure, the processing module 426 may derive values of the one or more query parameters from the order data received from the one or more input sources. In a non-limiting example, the processing module 426 may derive the value of the customer first name from the order creation request.

[0103] In some aspects of the present disclosure, the processing module 426 may derive values of the one or more query parameters from the one or more variables defined within the template. In a non-limiting example, the processing module 426 may derive the value of the “shipping address” from the variable defined in the template.

[0104] In some aspects of the present disclosure, the processing module 426 may derive values of the one or more query parameters from the response obtained from the one or more external systems using the invoked the external service interface. In a non-limiting example, the processing module 426 may derive the value of the “customer salutation” from the response API obtained from the external system.

[0105] In some aspects of the present disclosure, the processing module 426 may derive values of the one or more query parameters as a static text value defined within the template. In a non-limiting example, the processing module 426 may derive the value of the as the static text, for example, the “mobile number” may be defined as the static text in the template or it may be derived from the order creation request.

[0106] In some embodiments of the present disclosure, the API may be invoked using real-time APIs. The transmission module 432 may transmit the code as the API in the specific text-based format over the real-time API to the external system. The response API obtained from the external system may also be over the real-time API. This enables the user to with up-to-date information and immediate responsesto user actions. Hence, the template may be updated and the response to the query may be obtained in real-time.

[0107] FIG. 6 illustrates a process flow diagram depicting a method 600 for dynamically creating the template-based request for invocation of the external service interface, in accordance with an embodiment of the present disclosure. The method 600 comprises a series of operation steps indicated by blocks 602 through 612 performed by the processor 414 using the one or more modules 416 of the system 400.

[0108] At block 602, the retrieving module 424 may retrieve from the database 114, the template for the order data received from one or more input sources. The template may be retrieved based on at least one operation name and at least one product code included in the order data.

[0109] At block 604, the processing module 426 may parse the retrieved template sequentially to interpret one or more instructions defined in the predefined format.

[0110] In some aspects of the present disclosure, the one or more instructions may comprise at least one of the variable declaration instruction using the reserved keyword to define the one or more variables of one or more data types, the variable access instruction referencing values of the one or more variables using the predefined token symbol, the invocation instruction to invoke the external service interface for triggering the one or more external systems using the one or more details of the external service interface, and the parameter addition instruction demarcated using the syntax marker for appending the one or more query parameters and corresponding values.

[0111] At block 606, the determination module 428 may determine, based on the one or more instructions in the template, whether to invoke the external service interface for triggering one or more external systems.

[0112] At block 608, the processing module 426 may map, based on a result of the determination, a name of the external service interface defined in the template with one or more details of the external service interface comprising at least one of the URL, the header, the request body, and the one or more query parameters. For instance, the external service interface may be the API.

[0113] At block 610, the appending module 430 may append the one or more query parameters in the request body of the external service interface for invocation.

[0114] In some aspects of the present disclosure, the processing module 426 may initialize one or more variables in the template for retrieving standard configuration parameters and additional parameters from the one or more external systems. The appending module 430 may append the URL, the header, and the request body comprising the one or more query parameters within the one or more variables to form the structured request body. The reception module 422 may receive, based on the structured request body, a response from the one or more external systems using the invoked the external service interface.

[0115] In some aspects of the present disclosure, the appending module 430 may append one or more sub -parameters as nested objects inside the one or more query parameters by a way of indentation in the request body.

[0116] In some aspects of the present disclosure, the processing module 426 may derive values of the one or more query parameters from at least one of the order data received from the one or more input sources, the one or more variables defined within the template, the response obtained from the one or more external systems using the invoked the external service interface, or a static text value defined within the template.

[0117] In some aspects of the present disclosure, each of the one or more query parameters and the one or more sub -parameters may be defined in the template using the syntax marker. Each corresponding value of the one or more query parameters and the one or more sub -parameters may be assigned using the predefined keyword.A hierarchical relationship between the one or more query parameters and the one or more sub-parameters may be defined through indentation or nesting represented in the template.

[0118] At block 612, the processing module 426 may create the template-based request as the structured request body by aggregating the one or more query parameters and corresponding values of the one or more query parameters into the specific text-based format.

[0119] In some aspects of the present disclosure, the transmission module 432 may transmit, using the external service interface, the structured request body to the one or more external systems over the communication network 100.

[0120] FIG. 7 illustrates a schematic block diagram of a computing system 700 for creating the template-based request, in accordance with an embodiment of the present disclosure.

[0121] The computing system 700 includes a network 702, a network interface 704, a processor 706 (similar in functionality to the processor 414 of FIG. 4), an Input / Output (I / O) interface 708 (similar in functionality to the communication interface 412 of FIG. 4), and a non -transitory computer readable storage medium 710 (hereinafter may also be referred to as the “storage medium 710” or the “storage media 710”). The network interface 704 includes wireless network interfaces such as Bluetooth, Wi-Fi, Worldwide Interoperability for Microwave Access (WiMAX), General Packet Radio Service (GPRS), or Wideband Code Division Multiple Access (WCDMA) or wired network interfaces such as Ethernet, Universal Serial Bus (USB), or Institute of Electrical and Electronics Engineers-854 (IEEE-854).

[0122] The processor 706 may include various processing circuitry / modules and communicate with the storage medium 710 and the VO interface 708. The processor 706 is configured to execute instructions stored in the storage medium 710 and to perform various processes. The processor 706 may include an intelligent hardware device including a general -purpose processor, such as, for example, and withoutlimitation, the CPU, the AP, the dedicated processor, or the like, the graphics-only processing unit such as the GPU, the microcontroller, the FPGA, the programmable logic device, the discrete hardware component, or any combination thereof. The processor 706 may be configured to execute computer-readable instructions 710-1 stored in the storage medium 710 to cause the system 400 to perform various functions disclosed throughput the disclosure.

[0123] The storage medium 710 stores a set of instructions i.e., computer program instructions 710-1 (hereinafter may also be referred to as instructions 710-1) required by the processor 706 for controlling its overall operations. The storage medium 710 may store instructions to perform the method 600. The storage media 710 may include an electronic storage medium, a magnetic storage medium, an optical storage medium, a quantum storage medium, or the like. For example, the storage media 710 may include, but are not limited to, hard drives, floppy diskettes, optical disks, ROMs, RAMs, EPROMs, EEPROMs, flash memory, magnetic or optical cards, solid-state memory devices, or other types of physical media suitable for storing electronic instructions. In one or more embodiments, the storage media 710 includes a Compact Disk-Read Only Memory (CD-ROM), a Compact Disk- Read / Write (CD-R / W), and / or a Digital Video Disc (DVD). In one or more implementations, the storage medium 710 stores computer program code configured to cause the computing system 700 to perform at least a portion of the processes and / or methods disclosed herein throughput the disclosure.

[0124] Embodiments of the present disclosure have been described above with reference to flowchart illustrations of methods and systems according to embodiments of the disclosure, and / or procedures, algorithms, steps, operations, formulae, or other computational depictions, which may also be implemented as computer program products. In this regard, each block or step of the flowchart, and combinations of blocks (and / or steps) in the flowchart, as well as any procedure, algorithm, step, operation, formula, or computational depiction can be implemented by various means, such as hardware, firmware, and / or software including one or more computer program instructions embodied in computer-readable program code.As will be appreciated, any such computer program instructions may be executed by one or more computer processors, including without limitation a general-purpose computer or special purpose computer, or other programmable processing apparatus to perform a group of operations comprising the operations or blocks described in connection with the disclosed method.

[0125] Further, these computer program instructions, such as embodied in computer-readable program code, may also be stored in one or more computer- readable memory or memory devices (for example, the memory unit 418 or the storage medium 710) that can direct a computer processor or other programmable processing apparatus to function in a particular manner, such that the instructions 710-1 stored in the computer-readable memory or memory devices produce an article of manufacture including instruction means which implement the function specified in the block(s) of the flowchart(s).

[0126] It will further be appreciated that the term “computer program instructions” as used herein refer to one or more instructions that can be executed by the one or more processors (for example, the processor 414) to perform one or more functions as described herein. The instructions 710-1 may also be stored remotely such as on a server, or all or a portion of the instructions can be stored locally and remotely.

[0127] Referring to the technical abilities and advantageous effect of the present disclosure, operational advantages that may be provided by embodiments disclosed herein may include reduced development and maintenance overhead for API request body preparation to be sent to the external systems by transmitting template-based request in a user-friendly language.

[0128] Those skilled in the art will appreciate that the methodology described herein in the present disclosure may be carried out in other specific ways than those set forth herein in the above disclosed embodiments without departing from essential characteristics and features of the present disclosure. The above-described embodiments are therefore to be construed in all aspects as illustrative and not restrictive.

[0129] The drawings and the forgoing description give examples of embodiments. Those skilled in the art will appreciate that one or more of the described elements may well be combined into a single functional element. Alternatively, certain elements may be split into multiple functional elements. Elements from one embodiment may be added to another embodiment. For example, orders of processes described herein may be changed and are not limited to the manner described herein. Any combination of the above features and functionalities may be used in accordance with one or more embodiments.

[0130] In the present disclosure, each of the embodiments has been described with reference to numerous specific details which may vary from embodiment to embodiment. The foregoing description of the specific embodiments disclosed herein may reveal the general nature of the embodiments herein that others may, by applying current knowledge, readily modify and / or adapt for various applications such specific embodiments without departing from the generic concept, and, therefore, such adaptations and modifications are intended to be comprehended within the meaning of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and is not limited in scope.LIST OF REFERENCE NUMERALS

[0131] The following list is provided for convenience and in support of the drawing figures and as part of the text of the specification, which describe innovations by reference to multiple items. Items not listed here may nonetheless be part of a given embodiment. For better legibility of the text, a given reference number is recited near some, but not all, recitations of the referenced item in the text. The same reference number may be used with reference to different examples or different instances of a given item. The list of reference numerals is:100 - Communication environment102 - Network104 - User device106 - Application server108 - Other devices110 - Clients112 - Processing module114 - Database200 - An architecture for creating a template-based request202 - Plurality of channels202 - Load balancer206 - Subscription Engine (SE) platform208 - Customer Relationship Management (CRM) platform210 - Billing and invoice system212 - Product catalogue214 - Data Information Framework (DIF) Platform216 - Notification hub218 - Operations Support Systems (OSS) Fulfilment Management System (FMS)220 - Unified Assurance Platform (UAP) System222 - Geographic Information System (GIS)300 - Block diagram depicting the plurality of channels 202 and services302 - Gateway (GW) services302-1 - Edge Load Balancer302-2- Common API Framework (CAPIF)304 - CRM platform services304-1 - DIF Microservice304-2 - DIF Cache Server304-3 - DIF Persistence Database304-4 - DIF Distributed Streaming Platform304-5 - DIF 0AM Server400 - Block diagram of a system for creating the template-based request402 - Processor of the user device 104404 - Memory of the user device 104406 - Communication interface of the user device 104408 - Input / Output (I / O) interface of the user device 104410 - User Interface (UI) of the I / O interface 408412 - Communication interface of the server 106414 - Processor of the server 106416 - One or more modules of the server 106418 - Memory 418 of the server 106420 - Database of the server 106422 - Reception module424 - Retrieving module426 - Processing module428 - Determination module430 - Appending module432 - Transmission module500 - Method for creating the template-based request in a single specific text-based format502-514 - Operation steps of the method 500600 - Method for dynamically creating the template-based request for invocation of the external service interface602-612 - Operation steps of the method 600700 - Block diagram of a computing system702 - Network704 - Network interface706 - Processor708 - Input / Output (I / O) interface710 - Non-transitory computer-readable storage medium710-1 - Set of instructions

Claims

We Claim:

1. A method (600) for dynamically creating a template-based request for invocation of an external service interface in a communication network, the method (600) comprising: retrieving (602), by a retrieving module (424), a template from a database for an order data received from one or more input sources, wherein the template is retrieved based on at least one operation name and at least one product code included in the order data; parsing (604), by a processing module (426), the retrieved template sequentially to interpret one or more instructions defined in a predefined format; determining (606), by a determination module (428) based on the one or more instructions in the template, whether to invoke the external service interface for triggering one or more external systems; mapping (608), by the processing module (426) based on a result of the determination, a name of the external service interface defined in the template with one or more details of the external service interface comprising at least one of a Uniform Resource Locator (URL), a header, a request body, and the one or more query parameters; appending (610), by an appending module (430), the one or more query parameters in the request body of the external service interface for invocation; and creating (612), by the processing module (426), the template-based request as a structured request body by aggregating the one or more query parameters and corresponding values of the one or more query parameters into a specific text-based format.

2. The method (600) as claimed in claim 1, comprising transmitting, by a transmission module (432) using the external service interface, the structured request body to the one or more external systems over the communication network.

3. The method (600) as claimed in claim 1, comprising:initializing, by the processing module (426), one or more variables in the template for retrieving standard configuration parameters and additional parameters from the one or more external systems; appending, by the appending module (430), the URL, the header, and the request body comprising the one or more query parameters within the one or more variables to form the structured request body; and receiving, by a reception module (422) based on the structured request body, a response from the one or more external systems using the invoked the external service interface.

4. The method (600) as claimed in claim 1, comprising appending, by the appending module (430), one or more sub-parameters as nested objects inside the one or more query parameters by a way of indentation in the request body.

5. The method (600) as claimed in claim 1, comprising deriving, by the processing module (426), values of the one or more query parameters from at least one of the order data received from the one or more input sources, the one or more variables defined within the template, the response obtained from the one or more external systems using the invoked the external service interface, or a static text value defined within the template.

6. The method (600) as claimed in claim 1, wherein: each of the one or more query parameters and the one or more subparameters are defined in the template using a syntax marker; each corresponding value of the one or more query parameters and the one or more sub-parameters are assigned using a predefined keyword; and a hierarchical relationship between the one or more query parameters and the one or more sub-parameters is defined through indentation or nesting represented in the template.

7. The method (600) as claimed in claim 1, wherein the one or more instructions comprise at least one of: a variable declaration instruction using a reserved keyword to define the one or more variables of one or more data types; a variable access instruction referencing values of the one or more variables using a predefined token symbol; an invocation instruction to invoke the external service interface for triggering the one or more external systems using the one or more details of the external service interface; and a parameter addition instruction demarcated using the syntax marker for appending the one or more query parameters and corresponding values.

8. A system (400) for dynamically creating a template-based request for invocation of an external service interface in a communication network, the system (400) comprising: a retrieving module (424) configured to retrieve, from a database, a template for an order data received from one or more input sources, wherein the template is retrieved based on at least one operation name and at least one product code included in the order data; a processing module (426) configured to parse the retrieved template sequentially to interpret one or more instructions defined in a predefined format; a determination module (428) configured to determine, based on the one or more instructions in the template, whether to invoke the external service interface for triggering one or more external systems; the processing module (426) configured to map, based on a result of the determination, a name of the external service interface defined in the template with one or more details of the external service interface comprising at least one of a Uniform Resource Locator (URL), a header, a request body, and the one or more query parameters; an appending module (430) configured to append the one or more query parameters in the request body of the external service interface for invocation; andthe processing module (426) configured to create the template-based request as a structured request body by aggregating the one or more query parameters and corresponding values of the one or more query parameters into a specific text-based format.

9. The system (400) as claimed in claim 8, comprising a transmission module (432) configured to transmit, using the external service interface, the structured request body to the one or more external systems over the communication network.

10. The system (400) as claimed in claim 8, wherein: the processing module (426) is configured to initialize one or more variables in the template for retrieving standard configuration parameters and additional parameters from the one or more external systems; the appending module (430) is configured to append the URL, the header, and the request body comprising the one or more query parameters within the one or more variables to form the structured request body; and the system (400) comprises a reception module (422) configured to receive, based on the structured request body, a response from the one or more external systems using the invoked the external service interface.

11. The system (400) as claimed in claim 8, wherein the appending module (430) is configured to append one or more sub-parameters as nested objects inside the one or more query parameters by a way of indentation in the request body.

12. The system (400) as claimed in claim 8, wherein the processing module (426) is configured to derive values of the one or more query parameters from at least one of the order data received from the one or more input sources, the one or more variables defined within the template, the response obtained from the one or more external systems using the invoked the external service interface, or a static text value defined within the template.

13. The system (400) as claimed in claim 8, wherein: each of the one or more query parameters and the one or more subparameters are defined in the template using a syntax marker; each corresponding value of the one or more query parameters and the one or more sub-parameters are assigned using a predefined keyword; and a hierarchical relationship between the one or more query parameters and the one or more sub-parameters is defined through indentation or nesting represented in the template.

14. The system (400) as claimed in claim 8, wherein the one or more instructions comprise at least one of: a variable declaration instruction using a reserved keyword to define the one or more variables of one or more data types; a variable access instruction referencing values of the one or more variables using a predefined token symbol; an invocation instruction to invoke the external service interface for triggering the one or more external systems using the one or more details of the external service interface; and a parameter addition instruction demarcated using the syntax marker for appending the one or more query parameters and corresponding values.

15. A computer program product comprising computer-executable instructions that are stored on a non-transitory computer-readable medium and that, when executed by at least one processor performs operations comprising: retrieving, from a database, a template for an order data received from one or more input sources, wherein the template is retrieved based on at least one operation name and at least one product code included in the order data; parsing the retrieved template sequentially to interpret one or more instructions defined in a predefined format;determining, based on the one or more instructions in the template, whether to invoke an external service interface for triggering one or more external systems; mapping, based on a result of the determination, a name of the external service interface defined in the template with one or more details of the external service interface comprising at least one of a Uniform Resource Locator (URL), a header, a request body, and the one or more query parameters; appending the one or more query parameters in the request body of the external service interface for invocation; and creating the template-based request as a structured request body by aggregating the one or more query parameters and corresponding values of the one or more query parameters into a specific text-based format.

Citation Information

Patent Citations

  • Provisioning and activation using a service catalog

    US20090157457A1

  • XML-based template language for devices and services

    US6910068B2

  • Template-driven management of telecommunications network via utilization of operations support services clients

    US7111053B1