WO2012110079A1 - Distribution of data processing - Google Patents

Distribution of data processing Download PDF

Info

Publication number
WO2012110079A1
WO2012110079A1 PCT/EP2011/052208 EP2011052208W WO2012110079A1 WO 2012110079 A1 WO2012110079 A1 WO 2012110079A1 EP 2011052208 W EP2011052208 W EP 2011052208W WO 2012110079 A1 WO2012110079 A1 WO 2012110079A1
Authority
WO
WIPO (PCT)
Prior art keywords
request
result
computational task
client node
data
Prior art date
Application number
PCT/EP2011/052208
Other languages
French (fr)
Inventor
Vilho Ilmari RAISANEN
Original Assignee
Nokia Siemens Networks Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Siemens Networks Oy filed Critical Nokia Siemens Networks Oy
Priority to PCT/EP2011/052208 priority Critical patent/WO2012110079A1/en
Publication of WO2012110079A1 publication Critical patent/WO2012110079A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Definitions

  • the exemplary and non-limiting embodiments of this invention relate generally to communications networks, and more particularly to distribution of data processing in wireless communications .
  • REST Representational state transfer
  • REST is a style of software architecture for distributed hypermedia systems such as the world wide web (www) .
  • REST is a simple way to organize interactions between independent systems.
  • REST has influenced on the design of services such as the Twitter API.
  • REST allows interacting with minimal overhead with clients as diverse as mobile phones and other websites.
  • REST is usually implemented as a web. Basically, REST may be used wherever HTTP may be used.
  • a method for distribution of data processing comprising controlling the functioning of a network element by receiving, from a client node, a request to perform a computational task on structured data, the request
  • identifying a data collection and the requested task based on the request, performing the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and returning a result of the computational task.
  • an apparatus configured to receive, from a client node, a request to perform a computational task on structured data, the request identifying a data collection and the requested task; based on the request, perform the
  • computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and return a result of the computational task.
  • a client node configured to transmit, to a server node, a request to perform a computational task on structured data, the request identifying a data collection and the requested task, the computational task including applying a first operation to the data collection, and, if needed, applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and receive, from the server device, a result of the
  • communications system configured to control the functioning of a network node by receiving, from a client device, a request to perform a computational task on
  • the request identifying a data collection and the requested task; based on the request, performing the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and returning a result of the
  • a computer-readable storage medium embodying a program of instructions executable by a processor to perform actions directed toward controlling the functioning of a network node by receiving, from a client device, a request to perform a computational task on structured data, the request identifying a data collection and the requested task; based on the request, performing the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and returning a result of the computational task.
  • a program of instructions executable by a processor to perform actions directed toward controlling the functioning of a network node by receiving, from a client device, a request to perform a computational task on structured data, the request identifying a data collection and the requested task; based on the request, performing the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is
  • Figure 1 shows a simplified block diagram illustrating exemplary system architecture
  • Figure 2 shows a simplified block diagram illustrating exemplary apparatuses
  • Figure 3 shows a messaging diagram illustrating an exemplary messaging event according to an exemplary embodiment
  • Figure 4 shows a schematic diagram of a flow chart according to an exemplary embodiment
  • Figure 5 shows a schematic diagram of a flow chart according to an exemplary embodiment.
  • map refers to a higher-order function that applies a given function element-wise to a list of elements and returns a list of results. Map establishes a set of values having a defined correspondence with the quantities or values of another set.
  • Reduce (which may also be referred to as fold, accumulate, compress, or inject) refers to a higher-order function that iterates an arbitrary function over a data structure in some order and builds up a return value. Reduce may deal with a combining function and a list of elements of a data structure. Reduce combines elements of the data structure using the function in a systematic way.
  • REST may be seen as a service- oriented alternative to RPC, which allows avoiding logic "image coding" which is typical to RPC.
  • the client is more free to decide on how to access data.
  • each unique state in a protocol state machine has its own URI. That is different from an RPC endpoint that maintains a black-boxed state machine at a single endpoint. Being able to do state transition processing at disparate locations is hugely powerful. A single process is able to span machines offering differing levels of scalability, reliability and security. In RPC, a more likely solution is to have multiple RPC interfaces to the different machines involved in the process and then tie their protocols
  • transition URIs may be embedded in the
  • a single URL is used to encode all transitions.
  • messages are not interpreted as serialized call- stacks.
  • the purpose of RPC is to copy a stack frame from one process to another, where it exists for the duration of a method call. That makes RPC natural to anyone used to invoking a method, but it also makes it very hard to alter one side of the system without altering the other. While
  • HTTP-based systems still use request/response messages, they are not call-stacks.
  • RPC uses HTTP merely as a proxy service for its own proprietary architecture, rather than taking advantage of the different properties , such as PUT, GET, DELETE etc.
  • RPC does not fit to the traditional web stack very well - a cache server in the middle does not work, for example, without knowing about the meaning of the contents of an RPC call.
  • large data volumes necessitate a massive processing power. This usually requires the use of multiple computers and hence requires distribution of computing.
  • Google MapReduce framework is based on a master node
  • the master node then combines the results of each worker node to achieve a total result. This approach requires the presence of a master node coordinating the computation and transfer of data.
  • Google MapReduce supports distributed computing on large data sets on clusters of computers. Map and reduce functions commonly used in functional programming resemble Google
  • MapReduce although their purpose in Google MapReduce is not quite the same as their original forms. MapReduce enables processing huge datasets on certain distributable problems by using a large number of computers (nodes), collectively referred to as a cluster. Computational processing may occur on the data stored either in a file system (unstructured) or within a database (structured) .
  • Databases such as SQL, support queries into their data, assuming that the data is indexed according to their schema.
  • "Map” and “reduce” operations may be defined as REST URLs, wherein the data federation is performed based on requests from REST clients.
  • the client sends a POST message to URI identifying a particular data collection and the operation requested.
  • the HTTP reply message returns the result of the operation application.
  • the operation in question may be "map” or "reduce”. Assuming that REST resources correspond to counters in a network element with domain name elem.nsn.com, and are identified by URIs /counter/cl, /counter/c2,
  • Map operation may be used to get the value of each counter with a function applied to it. For simplicity, assuming that one wishes to get the value of the counter times two.
  • the HTTP client may send HTTP POST message "x * 2" to http://elem.nsn.com/counter/map, which would trigger the application of multiplication operation to each counter, and the HTTP reply returns the values 2, 4, 6, 8 and 10.
  • a reduce operation may be used to compute a selected characteristic from the data set. Following the same example, HTTP POST "max" to h11p : /'/e1e in . ns n . co in,/counter,/red ce wou1d return value 5.
  • the described scheme may be applied
  • REST interface supporting the map and reduce operations, and used by the next higher level in the hierarchy.
  • the scheme provides a uniform interface based on a principle of control by the HTTP client. This approach enables building new federations of previous data easily.
  • Organization of the REST interface hierarchy enables the ability to perform the map and reduce operations in a sensible way. It may be useful to generate multiple parallel expositions of same data.
  • the operations such as "x * 2" and "max" above may be implemented by means of a parser. Alternatively, operation may be sent as a script using a suitable language, such as JavaScript. For complex data items, such as records, it is convenient to implement data accessor functions in the REST interface.
  • accessor /customer/12345/surname may be used by operations related to surnames of customers.
  • the actual REST interface for /map, /reduce, and accessors may be implemented with a web framework supporting dynamic HTML. Authentication for operations enables avoiding denial- of-service attacks against systems. This provides a simple means for controlling data processing distribution through a HTTP request, but is merely limited to one operation per request .
  • An exemplary embodiment relates to distribution of computing and data federation (processing large amounts of data to achieve desired results) .
  • Both topics may relate e.g. to cloud computing and operability.
  • An exemplary embodiment for data processing distribution with HTTP interfaces enables network load management by an HTTP server filtering the requests according to an operation coded in a uniform resource identifier (URI) .
  • URI uniform resource identifier
  • each system has its own data which is available via a uniform interface (e.g. HTTP) .
  • a client may request specific operations to be performed on the data by means of requests to the interface (e.g.
  • HTTP/REST HyperText Transfer Protocol/REST
  • a request such as POST "x * 2" to URI h_ttp_:_//nsn_. co /counter/c/map , returns the values of counters of type c multiplied by 2.
  • map perform a specified operation on resources
  • An exemplary embodiment avoids making several requests to achieve a specific result which requires multiple operations (see above example) .
  • the HTTP server is able to filter the requests to prevent requests from performing too heavy operations and overloading a network element or IT system. For example, reduce operations may only allow simple
  • resources under a particular URI conform to the same record format; it is merely required that the requested operations may be applied to each resource.
  • Resources do not necessarily need to have a unique identifier.
  • Shorthand format may be used for structured data so that record keys may directly be used in URIs when they do not collide with HTTP server's URIs.
  • the above examples may thus be shortened to:
  • Operation encoding may be performed by means of URI
  • intermediate result (s) may be cached for future requests to avoid re-computing of results.
  • An exemplary embodiment enables distribution of data
  • An exemplary embodiment enables managing the operation of a network element, such as a mobile switching centre MSC or any other element of a fixed or a wireless communications network .
  • the present invention is applicable to any user terminal, server, corresponding component, and/or to any communication system or any combination of different communication systems that support accessing data collections by means of
  • the communication system may be a fixed communication system or a wireless communication system or a communication system utilizing both fixed networks and wireless networks.
  • the protocols used, the specifications of communication systems, servers and user terminals, especially in wireless communication, develop rapidly. Such development may require extra changes to an embodiment. Therefore, all words and expressions should be interpreted broadly and they are intended to illustrate, not to restrict, the embodiment. In the following, different embodiments will be described using, as an example of a system architecture whereto the embodiments may be applied, without restricting the
  • the radio system is based on LTE network elements.
  • the invention described in these examples is not limited to the LTE radio systems but can also be implemented in other radio systems, such as UMTS
  • the presented solution may be applied between elements belonging to different but compatible systems such as LTE and UMTS.
  • a general architecture of a communication system is
  • Figure 1 is a simplified system architecture only showing some elements and functional entities, all being logical units whose implementation may differ from what is shown.
  • the connections shown in Figure 1 are logical connections; the actual physical connections may be different. It is apparent to a person skilled in the art that the systems also comprise other functions and
  • the exemplary radio system of Figure 1 comprises a network apparatus 104 of a network operator.
  • the network apparatus 104 may include e.g. a hypertext transfer protocol HTTP server and/or a representational state transfer REST server or any other network element, user equipment or a combination of network elements.
  • the network apparatus 104 may be connected to a client node 102 e.g. via a connection 105 (interface 105) .
  • the client node 102 may include e.g. a hypertext transfer protocol HTTP client and/or a
  • FIG. 1 shows the server node 104 operatively connected or integrated to a network element 103.
  • the network element may include an MSC server (MSS), serving GPRS support node, mobility management entity (MME) , home location register (HLR) , home subscriber server (HSS) , visitor location register (VLR) , a base station (node B, eNB) , access point (AP) , radio network controller (RNC) , or any other network element or a combination of network elements.
  • MSC server MME
  • MME mobility management entity
  • HLR home location register
  • HSS home subscriber server
  • VLR visitor location register
  • AP access point
  • RNC radio network controller
  • the network subsystem 101 may include e.g. an operation and maintenance
  • subsystem/base station system OSS/BSS or any other network element/subsystem or a combination of network
  • Figure 1 only illustrates a simplified example.
  • the net-work may include more servers and network elements .
  • the networks of two or more operators may overlap, the sizes and form of the cells may vary from what is depicted in Figure 1, etc.
  • the communication system may also be able to communicate with other networks, such as a public switched telephone network.
  • the embodiments are not, however,
  • connections between different network elements may be realized with internet protocol (IP) connections .
  • IP internet protocol
  • Figure 2 illustrates examples of apparatuses according to embodiments of the invention.
  • Figure 2 shows an apparatus 104 configured to be in connection with a client node 102.
  • the apparatus or HTTP server 104 comprises a controller 201 operationally connected to a memory 202 and an interface 203.
  • the controller 201 controls the operation of the apparatus 104.
  • the memory 202 is configured to store software and data.
  • the interface 203 is configured to setup and maintain the connection 105 with the client node 102.
  • the apparatus 104 may be operationally connected (directly or indirectly) or integrated into a further network element (not shown) of the communication system.
  • the further network element may be a MSC server (MSS) , serving GPRS support node, mobility management entity (MME) , home location register (HLR) , home subscriber server (HSS), visitor location register (VLR) , a base station (node B, eNB) , access point (AP) , and/or a radio network controller (RNC) , for example.
  • MSC server serving GPRS support node
  • MME mobility management entity
  • HLR home location register
  • HSS home subscriber server
  • VLR visitor location register
  • the apparatus 104 may also comprise various other components, such as a user interface, transceiver, camera, and media player. They are not displayed in the figure due to simplicity.
  • the client node or HTTP client 102 comprises a controller 204
  • the controller 204 controls the operation of the client node 102.
  • the interface 205 is configured to setup and maintain the connection with the apparatus 104.
  • the client node 102 may be operationally connected (directly or indirectly) or integrated into a further network element (not shown) of the communication system.
  • the further network element may be a an operation and maintenance subsystem/base station system
  • the client node 102 may also comprise various other components, such as a user interface, transceiver, camera, and media player. They are not displayed in the figure due to simplicity.
  • IP internet protocol
  • the memory may include volatile and/or non-volatile memory and typically stores content, data, or the like.
  • the memory may store computer program code such as software applications (for example for the detector unit and/or for the adjuster unit) or operating systems, information, data, content, or the like for the processor to perform steps associated with operation of the apparatus in accordance with embodiments.
  • the memory may be, for example, random access memory (RAM) , a hard drive, or other fixed data memory or storage device. Further, the memory, or part of it, may be removable memory detachably connected to the apparatus.
  • an apparatus implementing one or more functions of a corresponding mobile entity described with an embodiment comprises not only prior art means, but also means for implementing the one or more functions of a corresponding apparatus described with an embodiment and it may comprise separate means for each separate function, or means may be configured to perform two or more functions.
  • these techniques may be implemented in hardware (one or more apparatuses) , firmware (one or more apparatuses) , software (one or more modules), or combinations thereof.
  • implementation can be through modules (e.g., procedures, functions, and so on) that perform the functions described herein.
  • the software codes may be stored in any suitable, processor/computer-readable data storage medium(s) or memory unit(s) or article (s) of manufacture and executed by one or more processors/computers.
  • the data storage medium or the memory unit may be implemented within the processor/computer or external to the processor/computer, in which case it can be communicatively coupled to the processor/computer via various means as is known in the art.
  • User equipment may refer to any user communication device.
  • a term "user equipment” as used herein may refer to any device having a communication capability, such as a wireless mobile terminal, a PDA, a smart phone, a personal computer (PC), a laptop computer, a desktop computer, etc.
  • the wireless communication terminal may be an UMTS or GSM/EDGE smart mobile terminal.
  • the application capabilities of the device according to various embodiments of the invention may include native applications available in the terminal, or subsequently installed applications.
  • the messaging service center may be implemented in any network element, such as a server .
  • FIG. 2 is a block diagram of an apparatus according to an embodiment of the invention. Although the apparatus has been depicted as one entity, different modules and memory may be implemented in one or more physical or logical entities.
  • the functionality of the network apparatus 102, 104 is described in more detail below with Figures 3 to 5. It should be appreciated that the apparatus 102, 104 may comprise other units used in or for distributed computing and/or data federation. However, they are irrelevant to the actual invention and, therefore, they need not to be discussed in more detail here.
  • the apparatus may also be a user terminal which is a piece of equipment or a device that associates, or is arranged to associate, the user terminal and its user with a subscription and allows a user to interact with a communications system.
  • the user terminal presents information to the user and allows the user to input information.
  • the user terminal may be any terminal capable of receiving information from and/or transmitting in-formation to the network, connectable to the network wirelessly or via a fixed
  • the apparatus 102, 104 may generally include a processor, controller, control unit or the like connected to a memory and to various interfaces of the apparatus.
  • the processor is a central processing unit, but the processor may be an additional operation processor.
  • the processor may comprise a computer processor, application-specific
  • ASIC application-specific integrated circuit
  • FPGA field-programmable gate array
  • an apparatus implementing one or more functions of a corresponding mobile entity described with an embodiment comprises not only prior art means, but also means for implementing the one or more functions of a corresponding apparatus described with an embodiment and it may comprise separate means for each separate function, or means may be configured to perform two or more functions.
  • these techniques may be implemented in hardware (one or more apparatuses) , firmware (one or more apparatuses) , software (one or more modules), or combinations thereof.
  • firmware or software implementation can be through modules (e.g. procedures, functions, and so on) that perform the functions described herein.
  • the software codes may be stored in any suitable, processor/computer-readable data storage medium (s) or memory unit(s) or article (s) of manufacture and executed by one or more processors/computers.
  • the data storage medium or the memory unit may be implemented within the
  • processor/computer or external to the processor/computer, in which case it can be communicatively coupled to the
  • the signaling chart of Figure 3 illustrates the required signalling.
  • a first network apparatus 102 which may comprise e.g. a client node (HTTP client)
  • second network apparatus 104 which may comprise e.g. a server node (HTTP server)
  • HTTP client client node
  • second network apparatus 104 which may comprise e.g. a server node (HTTP server)
  • HTTP server server node
  • the request 301 is received in the second network apparatus 104 (i.e. a server node 104) .
  • the server node 104 Based on information received in the request 301, the server node 104 performs 302 the computational task by parsing the first URI element, and by applying 302 a first operation on the data collection in question.
  • the first operation may include e.g. a map and/or a reduce operation of functional programming.
  • the server node 104 then removes 302 the first URI element (i.e. the previously parsed URI element), and by applying 302 one or more second operations to a result of a previous operation.
  • the second operation may include e.g. a map and/or a reduce operation of functional programming. Each operation is encoded into a resource for the structured data.
  • the server node checks 302 whether there are URI elements left to be parsed.
  • the server node 104 parses the next URI element, performs the required operation on the data, removes the parsed URI element, until there are no URI elements left to be parsed regarding the HTTP request in question.
  • the server node 104 returns 302 the (final) result of the computational task.
  • the client node 102 may also return 302 one or more intermediate results, if more than one operations are subsequently performed.
  • the server node 104 (and/or the client node 102) may also be configured to store 302 the (final) result of the computational task and/or one or more intermediate results.
  • the server node 104 may then use 302 the (final) result for controlling the functioning of a network element (such as a mobile switching center) 103 using distributed data processing.
  • a response is transmitted from the server node 104 to the client node 102, the response 303 including information on the (final) result of the computational task.
  • the result of the computational task, included in the response message 303 may thus include, e.g. in the above example, the information found on the youngest employee at NSN' s Kunststoff site.
  • Figure 4 is a flow chart illustrating an exemplary
  • the apparatus 104 which may comprise e.g. a server node (HTTP server) , is configured to receive, in step 401, from a network apparatus 102, which may comprise e.g. a client node (HTTP client) , a request to perform a
  • the server node 104 Based on information received in the request, the server node 104 performs the computational task by parsing, in step 402, the first URI element, and by performing, in step 403, a first operation on the data collection.
  • the first operation may include e.g. a map and/or a reduce operation of functional programming.
  • the server node 104 removes the first (parsed) URI element, and checks, instep 405, based on the request (each (map/reduce) operation is encoded into a resource for the structured data) , whether a further
  • step 405 If it is found out in step 405 that a further operation is needed (i.e. there are one or more URI elements left), the server node is configured to return to step 402, and parse the next URI element, and perform, in step 403, a second operation to the data collection, (the second
  • Step 404 the URI element in question is removed in step 404.
  • Steps 402, 403, 404 and 405 are repeated until the required operations have been performed (i.e. until there are no URI elements left) .
  • the operations are encoded to URL (or URI) .
  • the server node 104 is configured to return 406 the (final) result of the computational task.
  • the server node 104 may also be configured to store the (final) result of the computational task and/or one or more
  • the server node may transmit 406 the (final) result (or one or more intermediate results) to the client node 102, and provide 406 a control signal to a network element (such as a mobile switching center 103) NE, to control the functioning of the network element 103 using distributed data processing.
  • a network element such as a mobile switching center 103
  • Figure 5 is a flow chart illustrating an exemplary
  • a network apparatus 102 which may comprise e.g. a client node (HTTP client), transmits 501, to a further network apparatus 104 which may comprise e.g. a server node (HTTP server) , a request to perform a computational task on structured data, the request identifying a data collection and the requested task.
  • HTTP client client node
  • server server node
  • the client node 102 receives a response including a result of the computational task, from the server node 104.
  • computational task received in step 502 may include, e.g. in the above example, the information found on the youngest employee at NSN' s Kunststoff site.
  • a method comprising controlling the functioning of a network element by receiving, from a client node, a request to perform a computational task on structured data, the request identifying a data collection and the requested task; based on the request, performing the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and returning a result of the computational task.
  • a method comprising receiving the request via a uniform interface .
  • a method comprising receiving the request in a representational state transfer server node from a
  • each operation is encoded into a uniform resource identifier for the structured data such that a record key is directly used in the uniform resource identifier, if the record key does not collide with a uniform resource identifier of the representational state transfer server node.
  • a method comprising recursive application of map and/or reduce operations to the structured data, wherein, if needed, the result of one operation is fed to another operation .
  • a method comprising storing, at least temporarily, the result and/or one or more intermediate results.
  • a method comprising using the result in the server node in order to manage the functioning of the network element .
  • an apparatus configured to receive, from a client node, a request to perform a computational task on structured data, the request identifying a data collection and the requested task; based on the request, perform the
  • computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and return a result of the computational task.
  • said first operation includes a map and/or a reduce operation of functional programming
  • the second operation includes a map and/or a reduce operation of functional programming
  • an apparatus configured to receive the request via a uniform interface.
  • the uniform interface comprises a hypertext transfer protocol interface and/or a representational state transfer interface.
  • an apparatus configured to receive the request from a representational state transfer client node.
  • an apparatus configured to encode each operation into a uniform resource identifier for the structured data such that a record key is directly used in the uniform resource identifier, if the record key does not collide with a uniform resource identifier of the representational state transfer server node.
  • an apparatus configured to perform recursive application of map and/or reduce operations to the structured data and, if needed, feed the result of one operation to another operation.
  • an apparatus configured to store, at least
  • an apparatus configured to provide the result to the client node.
  • an apparatus configured to perform a map operation by performing a specified operation on a resource.
  • an apparatus configured to perform a reduce
  • an apparatus comprising a hypertext transfer protocol server node and/or a representational state transfer server node.
  • an apparatus configured to use the result to control the functioning of a network element.
  • a client node configured to transmit, to a server node, a request to perform a computational task on structured data, the request identifying a data collection and the requested task, the computational task including applying a first operation to the data collection, and, if needed, applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and receive, from the server node, a response message including a result of the computational task.
  • a client node configured to use the result to control the functioning of a network element.
  • a client node configured to transmit the request to several server nodes in order to distribute data processing in a communications network.
  • a client node comprising a hypertext transfer protocol client node and/or a representational state transfer client node.
  • a client node configured to transmit the request via a uniform interface, wherein the uniform interface comprises a hypertext transfer protocol interface and/or a
  • a communications system configured to control the functioning of a network element by receiving, from a client node, a request to perform a computational task on structured data, the request identifying a data collection and the requested task; based on the request, performing the
  • a computer-readable storage medium embodying a program of instructions executable by a processor to perform actions directed toward controlling the functioning of a network element by receiving, from a client device, a request to perform a computational task on structured data, the request identifying a data collection and the requested task; based on the request, performing the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and returning a result of the computational task.

Abstract

A method for distribution of data processing is disclosed. The method comprises controlling the functioning of a network node by receiving (401), from a client device, a request to perform a computational task on structured data, the request identifying a data collection and the requested task. Based on the request, the computational task is performed by applying (403) a first operation to the data collection, said first operation including a map and/or a reduce operation of functional programming, and, if needed, by applying (403) one or more second operations to a result of a previous operation, the second operation including a map and/or a reduce operation of functional programming. Each operation is encoded into a resource for the structured data. A server device returns (406) the result of the computational task.

Description

Description Title Distribution of data processing
Field of the invention
The exemplary and non-limiting embodiments of this invention relate generally to communications networks, and more particularly to distribution of data processing in wireless communications .
Background art
The following description of background art may include insights, discoveries, understandings or disclosures, or associations together with disclosures not known to the relevant art prior to the present invention but provided by the invention. Some such contributions of the invention may be specifically pointed out below, whereas other such contributions of the invention will be apparent from their context .
Representational state transfer (REST) is a style of software architecture for distributed hypermedia systems such as the world wide web (www) . REST is a simple way to organize interactions between independent systems. REST has influenced on the design of services such as the Twitter API. REST allows interacting with minimal overhead with clients as diverse as mobile phones and other websites. REST is usually implemented as a web. Basically, REST may be used wherever HTTP may be used.
SUMMARY
The following presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. It is not intended to identify key elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some concepts of the invention in a simplified form as a prelude to the more detailed
description that is presented later.
Various aspects of the invention comprise a method, an apparatus, a client device, a system, and a computer-readable storage medium as defined in the independent claims. Further embodiments of the invention are disclosed in the dependent claims .
According to an embodiment of the invention there is provided a method for distribution of data processing, the method comprising controlling the functioning of a network element by receiving, from a client node, a request to perform a computational task on structured data, the request
identifying a data collection and the requested task; based on the request, performing the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and returning a result of the computational task.
According to a further embodiment of the invention there is provided an apparatus configured to receive, from a client node, a request to perform a computational task on structured data, the request identifying a data collection and the requested task; based on the request, perform the
computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and return a result of the computational task.
According to a yet further embodiment of the invention there is provided a client node configured to transmit, to a server node, a request to perform a computational task on structured data, the request identifying a data collection and the requested task, the computational task including applying a first operation to the data collection, and, if needed, applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and receive, from the server device, a result of the
computational task.
According to a yet further embodiment of the invention there is provided communications system configured to control the functioning of a network node by receiving, from a client device, a request to perform a computational task on
structured data, the request identifying a data collection and the requested task; based on the request, performing the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and returning a result of the
computational task.
According to a yet further embodiment of the invention there is provided computer-readable storage medium embodying a program of instructions executable by a processor to perform actions directed toward controlling the functioning of a network node by receiving, from a client device, a request to perform a computational task on structured data, the request identifying a data collection and the requested task; based on the request, performing the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and returning a result of the computational task. Brief description of the drawings
In the following the invention will be described in greater detail by means of preferred embodiments with reference to the attached drawings, in which
Figure 1 shows a simplified block diagram illustrating exemplary system architecture;
Figure 2 shows a simplified block diagram illustrating exemplary apparatuses; Figure 3 shows a messaging diagram illustrating an exemplary messaging event according to an exemplary embodiment;
Figure 4 shows a schematic diagram of a flow chart according to an exemplary embodiment;
Figure 5 shows a schematic diagram of a flow chart according to an exemplary embodiment.
DETAILED DESCRIPTION OF SOME EMBODIMENTS
In functional programming, "map" refers to a higher-order function that applies a given function element-wise to a list of elements and returns a list of results. Map establishes a set of values having a defined correspondence with the quantities or values of another set. "Reduce" (which may also be referred to as fold, accumulate, compress, or inject) refers to a higher-order function that iterates an arbitrary function over a data structure in some order and builds up a return value. Reduce may deal with a combining function and a list of elements of a data structure. Reduce combines elements of the data structure using the function in a systematic way.
The REST architecture and RPC (remote procedure call) share a feature of passing operation information in the target resource URI of the request. REST may be seen as a service- oriented alternative to RPC, which allows avoiding logic "image coding" which is typical to RPC. In the service- oriented alternative the client is more free to decide on how to access data.
In REST, each unique state in a protocol state machine has its own URI. That is different from an RPC endpoint that maintains a black-boxed state machine at a single endpoint. Being able to do state transition processing at disparate locations is hugely powerful. A single process is able to span machines offering differing levels of scalability, reliability and security. In RPC, a more likely solution is to have multiple RPC interfaces to the different machines involved in the process and then tie their protocols
together. The application in the middle have to understand how to mix the two protocols, passing data from one into the other, and back the other way. This causes a lot of protocol detail into the application mixing the calls, creating a much more complex solution.
In REST, the transition URIs may be embedded in the
representations of states, wherein it is easier to transition between states in the protocol. Each URI is accessed the same way. There is no separate interface per endpoint because the each endpoint represents the transition to an individual state, not all of the transitions required by a protocol. Again, technically this is doable with RPC, but nobody does it this way and solutions are more complex as a result. This is a recommendable way to produce machine-readable REST.
However, there are also other ways. In an exemplary
embodiment, a single URL is used to encode all transitions. In REST, messages are not interpreted as serialized call- stacks. The purpose of RPC is to copy a stack frame from one process to another, where it exists for the duration of a method call. That makes RPC natural to anyone used to invoking a method, but it also makes it very hard to alter one side of the system without altering the other. While
HTTP-based systems still use request/response messages, they are not call-stacks.
When RPC uses HTTP merely as a proxy service for its own proprietary architecture, rather than taking advantage of the different properties , such as PUT, GET, DELETE etc., RPC does not fit to the traditional web stack very well - a cache server in the middle does not work, for example, without knowing about the meaning of the contents of an RPC call. When processing large amounts of data to achieve desired results, large data volumes necessitate a massive processing power. This usually requires the use of multiple computers and hence requires distribution of computing. The
distribution scheme and messages required to coordinate distribution may be complex.
Google MapReduce framework is based on a master node
partitioning computation task (data) into parts and handing these out to worker nodes for processing. The master node then combines the results of each worker node to achieve a total result. This approach requires the presence of a master node coordinating the computation and transfer of data.
Google MapReduce supports distributed computing on large data sets on clusters of computers. Map and reduce functions commonly used in functional programming resemble Google
MapReduce, although their purpose in Google MapReduce is not quite the same as their original forms. MapReduce enables processing huge datasets on certain distributable problems by using a large number of computers (nodes), collectively referred to as a cluster. Computational processing may occur on the data stored either in a file system (unstructured) or within a database (structured) .
Databases, such as SQL, support queries into their data, assuming that the data is indexed according to their schema. "Map" and "reduce" operations may be defined as REST URLs, wherein the data federation is performed based on requests from REST clients. The client sends a POST message to URI identifying a particular data collection and the operation requested. The HTTP reply message returns the result of the operation application. The operation in question may be "map" or "reduce". Assuming that REST resources correspond to counters in a network element with domain name elem.nsn.com, and are identified by URIs /counter/cl, /counter/c2,
/counter/c3, /counter/c4, and /counter/c5, with values of 1, 2, 3, 4 and 5, respectively. Map operation may be used to get the value of each counter with a function applied to it. For simplicity, assuming that one wishes to get the value of the counter times two. The HTTP client may send HTTP POST message "x * 2" to http://elem.nsn.com/counter/map, which would trigger the application of multiplication operation to each counter, and the HTTP reply returns the values 2, 4, 6, 8 and 10. A reduce operation may be used to compute a selected characteristic from the data set. Following the same example, HTTP POST "max" to h11p : /'/e1e in . ns n . co in,/counter,/red ce wou1d return value 5. The described scheme may be applied
hierarchically, whereby the results of a single map or reduce operation may, in turn, be exposed using REST interface supporting the map and reduce operations, and used by the next higher level in the hierarchy. The scheme provides a uniform interface based on a principle of control by the HTTP client. This approach enables building new federations of previous data easily. Organization of the REST interface hierarchy enables the ability to perform the map and reduce operations in a sensible way. It may be useful to generate multiple parallel expositions of same data. The operations such as "x * 2" and "max" above may be implemented by means of a parser. Alternatively, operation may be sent as a script using a suitable language, such as JavaScript. For complex data items, such as records, it is convenient to implement data accessor functions in the REST interface. An example of a accessor function, if URI /customer/ 12345 identifies an individual customer, then accessor /customer/12345/surname may be used by operations related to surnames of customers. The actual REST interface for /map, /reduce, and accessors may be implemented with a web framework supporting dynamic HTML. Authentication for operations enables avoiding denial- of-service attacks against systems. This provides a simple means for controlling data processing distribution through a HTTP request, but is merely limited to one operation per request .
An exemplary embodiment relates to distribution of computing and data federation (processing large amounts of data to achieve desired results) . Both topics may relate e.g. to cloud computing and operability.
An exemplary embodiment for data processing distribution with HTTP interfaces enables network load management by an HTTP server filtering the requests according to an operation coded in a uniform resource identifier (URI) .
According to an exemplary embodiment, each system has its own data which is available via a uniform interface (e.g. HTTP) . A client may request specific operations to be performed on the data by means of requests to the interface (e.g.
HTTP/REST) . For example, a request, such as POST "x * 2" to URI h_ttp_:_//nsn_. co /counter/c/map , returns the values of counters of type c multiplied by 2. An exemplary embodiment involves a recursive application of map and reduce operations to the data. A result of one operation may be fed to another operation. The operation may be map (=perform a specified operation on resources) or reduce (=compute a new resource from existing ones) . In the examples below, a format is used in which operations are encoded into URI, but other implementations are also
possible .
Examples :
http : //nsn . com/emp Employees of NSN
http ; //nsn . com/ernp/map site=rnch NSN employees in Munich site
http://nsn.com/emp/map site=mch/map age Ages of Munich employees
http: //nsn . com/emp/map site=mch/map age/reduce min The youngest employee @ Munich
Above, it has been assumed that the data conforms to the format where employee records are accessible from URI http://nsn.com/emp and each record contains keys and data (e.g. age = 30 ) .
An exemplary embodiment avoids making several requests to achieve a specific result which requires multiple operations (see above example) . The HTTP server is able to filter the requests to prevent requests from performing too heavy operations and overloading a network element or IT system. For example, reduce operations may only allow simple
numerical operations such as max and min.
In an exemplary embodiment, it is not required that resources under a particular URI conform to the same record format; it is merely required that the requested operations may be applied to each resource. Resources do not necessarily need to have a unique identifier.
Shorthand format may be used for structured data so that record keys may directly be used in URIs when they do not collide with HTTP server's URIs. The above examples may thus be shortened to:
http :/ /nsn . com/emp Employees of NSN
http : //nsn . com/emp/site=mch NSN employees in Munich site http : //nsn . com/emp/site=mch/age Ages of Munich employees http : //nsn . com/emp/site=mch/age/min The youngest employee
@ Munich
Each operation of the form x=y corresponds to a reduce operation where the specified key x is compared to the value y. If a resource does not have this key, the data element in question is ignored. Operations of the form "/x" (e.g. /age above) are considered to correspond to a map operation for selecting a specific key in the resources. If the resource does not have this key, the resource is ignored.
Operation encoding may be performed by means of URI
(resource/operation as in above examples), and/or by means of a method body (above example may be specified with the body "site=mch age min" to URI http://nsn.com/emp) .
In an exemplary embodiment, intermediate result (s) may be cached for future requests to avoid re-computing of results. An exemplary embodiment enables distribution of data
processing by the client device transmitting requests to several server nodes to distribute the computing tasks in the network. Thus requests may be simultaneously made to several server systems. Recursive map/reduce operations may be carried out by means of HTTP interfaces. This feature may be utilized, for example, in cloud computing and/or OSS/BSS. An exemplary embodiment enables managing the operation of a network element, such as a mobile switching centre MSC or any other element of a fixed or a wireless communications network .
Exemplary embodiments of the present invention will now be de-scribed more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Although the specification may refer to "an", "one", or "some" embodiment (s) in several locations, this does not necessarily mean that each such reference is to the same embodiment (s) , or that the feature only applies to a single embodiment. Single features of different embodiments may also be combined to provide other embodiments. Like reference numerals refer to like elements throughout .
The present invention is applicable to any user terminal, server, corresponding component, and/or to any communication system or any combination of different communication systems that support accessing data collections by means of
functional programming. The communication system may be a fixed communication system or a wireless communication system or a communication system utilizing both fixed networks and wireless networks. The protocols used, the specifications of communication systems, servers and user terminals, especially in wireless communication, develop rapidly. Such development may require extra changes to an embodiment. Therefore, all words and expressions should be interpreted broadly and they are intended to illustrate, not to restrict, the embodiment. In the following, different embodiments will be described using, as an example of a system architecture whereto the embodiments may be applied, without restricting the
embodiment to such an architecture, however.
With reference to Figure 1, let us examine an example of a radio system to which embodiments of the invention can be applied. In this example, the radio system is based on LTE network elements. However, the invention described in these examples is not limited to the LTE radio systems but can also be implemented in other radio systems, such as UMTS
(universal mobile telecommunications system) , GSM, EDGE, WCDMA, bluetooth network, WLAN or other fixed, mobile or wireless network. In an embodiment, the presented solution may be applied between elements belonging to different but compatible systems such as LTE and UMTS.
A general architecture of a communication system is
illustrated in Figure 1. Figure 1 is a simplified system architecture only showing some elements and functional entities, all being logical units whose implementation may differ from what is shown. The connections shown in Figure 1 are logical connections; the actual physical connections may be different. It is apparent to a person skilled in the art that the systems also comprise other functions and
structures. It should be appreciated that the functions, structures, elements, and protocols used in or for fixed or wireless communication are irrelevant to the actual
invention. Therefore, they need not be discussed in more detail here.
The exemplary radio system of Figure 1 comprises a network apparatus 104 of a network operator. The network apparatus 104 may include e.g. a hypertext transfer protocol HTTP server and/or a representational state transfer REST server or any other network element, user equipment or a combination of network elements. The network apparatus 104 may be connected to a client node 102 e.g. via a connection 105 (interface 105) . The client node 102 may include e.g. a hypertext transfer protocol HTTP client and/or a
representational state transfer REST client or any other network element, user equipment or a combination of network elements. Figure 1 shows the server node 104 operatively connected or integrated to a network element 103. The network element may include an MSC server (MSS), serving GPRS support node, mobility management entity (MME) , home location register (HLR) , home subscriber server (HSS) , visitor location register (VLR) , a base station (node B, eNB) , access point (AP) , radio network controller (RNC) , or any other network element or a combination of network elements. Figure 1 shows the client node 102 operatively connected or
integrated to a network subsystem 101. The network subsystem 101 may include e.g. an operation and maintenance
subsystem/base station system OSS/BSS, or any other network element/subsystem or a combination of network
elements/subsystems .
Figure 1 only illustrates a simplified example. In practice, the net-work may include more servers and network elements . The networks of two or more operators may overlap, the sizes and form of the cells may vary from what is depicted in Figure 1, etc. The communication system may also be able to communicate with other networks, such as a public switched telephone network. The embodiments are not, however,
restricted to the network given above as an example, but a person skilled in the art may apply the solution to other communication networks provided with the necessary
properties. For example, the connections between different network elements may be realized with internet protocol (IP) connections .
Figure 2 illustrates examples of apparatuses according to embodiments of the invention. Figure 2 shows an apparatus 104 configured to be in connection with a client node 102. The apparatus or HTTP server 104 comprises a controller 201 operationally connected to a memory 202 and an interface 203. The controller 201 controls the operation of the apparatus 104. The memory 202 is configured to store software and data. The interface 203 is configured to setup and maintain the connection 105 with the client node 102. The apparatus 104 may be operationally connected (directly or indirectly) or integrated into a further network element (not shown) of the communication system. The further network element may be a MSC server (MSS) , serving GPRS support node, mobility management entity (MME) , home location register (HLR) , home subscriber server (HSS), visitor location register (VLR) , a base station (node B, eNB) , access point (AP) , and/or a radio network controller (RNC) , for example. The apparatus 104 may also comprise various other components, such as a user interface, transceiver, camera, and media player. They are not displayed in the figure due to simplicity. The client node or HTTP client 102 comprises a controller 204
operationally connected to an interface 205 and a memory 206. The controller 204 controls the operation of the client node 102. The interface 205 is configured to setup and maintain the connection with the apparatus 104. The client node 102 may be operationally connected (directly or indirectly) or integrated into a further network element (not shown) of the communication system. The further network element may be a an operation and maintenance subsystem/base station system
OSS/BSS, for example. The client node 102 may also comprise various other components, such as a user interface, transceiver, camera, and media player. They are not displayed in the figure due to simplicity.
The embodiments are not, however, restricted to the network given above as an example, but a person skilled in the art may apply the solution to other communication networks provided with the necessary properties. For example, the connections between different network elements may be realized with internet protocol (IP) connections.
The memory may include volatile and/or non-volatile memory and typically stores content, data, or the like. For example, the memory may store computer program code such as software applications (for example for the detector unit and/or for the adjuster unit) or operating systems, information, data, content, or the like for the processor to perform steps associated with operation of the apparatus in accordance with embodiments. The memory may be, for example, random access memory (RAM) , a hard drive, or other fixed data memory or storage device. Further, the memory, or part of it, may be removable memory detachably connected to the apparatus.
The techniques described herein may be implemented by various means so that an apparatus implementing one or more functions of a corresponding mobile entity described with an embodiment comprises not only prior art means, but also means for implementing the one or more functions of a corresponding apparatus described with an embodiment and it may comprise separate means for each separate function, or means may be configured to perform two or more functions. For example, these techniques may be implemented in hardware (one or more apparatuses) , firmware (one or more apparatuses) , software (one or more modules), or combinations thereof. For a firm¬ ware or software, implementation can be through modules (e.g., procedures, functions, and so on) that perform the functions described herein. The software codes may be stored in any suitable, processor/computer-readable data storage medium(s) or memory unit(s) or article (s) of manufacture and executed by one or more processors/computers. The data storage medium or the memory unit may be implemented within the processor/computer or external to the processor/computer, in which case it can be communicatively coupled to the processor/computer via various means as is known in the art. User equipment may refer to any user communication device. A term "user equipment" as used herein may refer to any device having a communication capability, such as a wireless mobile terminal, a PDA, a smart phone, a personal computer (PC), a laptop computer, a desktop computer, etc. For example, the wireless communication terminal may be an UMTS or GSM/EDGE smart mobile terminal. Thus, the application capabilities of the device according to various embodiments of the invention may include native applications available in the terminal, or subsequently installed applications. The messaging service center may be implemented in any network element, such as a server .
Figure 2 is a block diagram of an apparatus according to an embodiment of the invention. Although the apparatus has been depicted as one entity, different modules and memory may be implemented in one or more physical or logical entities.
The functionality of the network apparatus 102, 104 is described in more detail below with Figures 3 to 5. It should be appreciated that the apparatus 102, 104 may comprise other units used in or for distributed computing and/or data federation. However, they are irrelevant to the actual invention and, therefore, they need not to be discussed in more detail here.
The apparatus may also be a user terminal which is a piece of equipment or a device that associates, or is arranged to associate, the user terminal and its user with a subscription and allows a user to interact with a communications system. The user terminal presents information to the user and allows the user to input information. In other words, the user terminal may be any terminal capable of receiving information from and/or transmitting in-formation to the network, connectable to the network wirelessly or via a fixed
connection. Examples of the user terminal include a personal computer, a game console, a laptop (a notebook) , a personal digital assistant, a mobile station (mobile phone) , and a line telephone . The apparatus 102, 104 may generally include a processor, controller, control unit or the like connected to a memory and to various interfaces of the apparatus. Generally the processor is a central processing unit, but the processor may be an additional operation processor. The processor may comprise a computer processor, application-specific
integrated circuit (ASIC) , field-programmable gate array (FPGA) , and/or other hardware components that have been programmed in such a way to carry out one or more functions of an embodiment.
The techniques described herein may be implemented by various means so that an apparatus implementing one or more functions of a corresponding mobile entity described with an embodiment comprises not only prior art means, but also means for implementing the one or more functions of a corresponding apparatus described with an embodiment and it may comprise separate means for each separate function, or means may be configured to perform two or more functions. For example, these techniques may be implemented in hardware (one or more apparatuses) , firmware (one or more apparatuses) , software (one or more modules), or combinations thereof. For a firmware or software, implementation can be through modules (e.g. procedures, functions, and so on) that perform the functions described herein. The software codes may be stored in any suitable, processor/computer-readable data storage medium (s) or memory unit(s) or article (s) of manufacture and executed by one or more processors/computers. The data storage medium or the memory unit may be implemented within the
processor/computer or external to the processor/computer, in which case it can be communicatively coupled to the
processor/computer via various means as is known in the art. The signaling chart of Figure 3 illustrates the required signalling. In the example of Figure 3, a first network apparatus 102, which may comprise e.g. a client node (HTTP client), transmits, to second network apparatus 104, which may comprise e.g. a server node (HTTP server), a request 301 to perform a computational task on structured data, the request identifying a data collection and the requested task. In step 302, the request 301 is received in the second network apparatus 104 (i.e. a server node 104) . Based on information received in the request 301, the server node 104 performs 302 the computational task by parsing the first URI element, and by applying 302 a first operation on the data collection in question. The first operation may include e.g. a map and/or a reduce operation of functional programming. The server node 104 then removes 302 the first URI element (i.e. the previously parsed URI element), and by applying 302 one or more second operations to a result of a previous operation. The second operation may include e.g. a map and/or a reduce operation of functional programming. Each operation is encoded into a resource for the structured data. The server node then checks 302 whether there are URI elements left to be parsed. If there are, the server node parses the next URI element, performs the required operation on the data, removes the parsed URI element, until there are no URI elements left to be parsed regarding the HTTP request in question. In step 302, the server node 104 returns 302 the (final) result of the computational task. The client node 102 may also return 302 one or more intermediate results, if more than one operations are subsequently performed. The server node 104 (and/or the client node 102) may also be configured to store 302 the (final) result of the computational task and/or one or more intermediate results. The server node 104 may then use 302 the (final) result for controlling the functioning of a network element (such as a mobile switching center) 103 using distributed data processing. In a message 303, a response is transmitted from the server node 104 to the client node 102, the response 303 including information on the (final) result of the computational task. The result of the computational task, included in the response message 303, may thus include, e.g. in the above example, the information found on the youngest employee at NSN' s Munich site.
Figure 4 is a flow chart illustrating an exemplary
embodiment. The apparatus 104, which may comprise e.g. a server node (HTTP server) , is configured to receive, in step 401, from a network apparatus 102, which may comprise e.g. a client node (HTTP client) , a request to perform a
computational task on structured data, the request
identifying a data collection and the requested task. Based on information received in the request, the server node 104 performs the computational task by parsing, in step 402, the first URI element, and by performing, in step 403, a first operation on the data collection. The first operation may include e.g. a map and/or a reduce operation of functional programming. In step 403, the server node 104 removes the first (parsed) URI element, and checks, instep 405, based on the request (each (map/reduce) operation is encoded into a resource for the structured data) , whether a further
operation is needed (i.e. whether there are URI elements left to be parsed) . If it is found out in step 405 that a further operation is needed (i.e. there are one or more URI elements left), the server node is configured to return to step 402, and parse the next URI element, and perform, in step 403, a second operation to the data collection, (the second
operation may include e.g. a map and/or a reduce operation of functional programming) on the result of the earlier (latest) (map/reduce) operation. Then the URI element in question is removed in step 404. Steps 402, 403, 404 and 405 are repeated until the required operations have been performed (i.e. until there are no URI elements left) . The operations are encoded to URL (or URI) . For example, in the above example, the first map operation (site=mch) returns a set of data items which the rest of URL (or URI) is applied to. When URL has been parsed, it may be deduced that no further operations are left to be performed regarding the specific request in question. When it is found out in step 405 that no further map/reduce operation is needed, the server node 104 is configured to return 406 the (final) result of the computational task. The server node 104 may also be configured to store the (final) result of the computational task and/or one or more
intermediate results. The server node may transmit 406 the (final) result (or one or more intermediate results) to the client node 102, and provide 406 a control signal to a network element (such as a mobile switching center 103) NE, to control the functioning of the network element 103 using distributed data processing.
Figure 5 is a flow chart illustrating an exemplary
embodiment. A network apparatus 102, which may comprise e.g. a client node (HTTP client), transmits 501, to a further network apparatus 104 which may comprise e.g. a server node (HTTP server) , a request to perform a computational task on structured data, the request identifying a data collection and the requested task. In step 502, the client node 102 receives a response including a result of the computational task, from the server node 104. The result of the
computational task, received in step 502, may include, e.g. in the above example, the information found on the youngest employee at NSN' s Munich site.
Thus, according to an exemplary embodiment, there is provided a method comprising controlling the functioning of a network element by receiving, from a client node, a request to perform a computational task on structured data, the request identifying a data collection and the requested task; based on the request, performing the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and returning a result of the computational task.
According to another exemplary embodiment, there is provided a method comprising receiving the request via a uniform interface .
According to yet another exemplary embodiment, there is provided a method comprising receiving the request in a representational state transfer server node from a
representational state transfer client node.
According to yet another exemplary embodiment, there is provided a method, wherein each operation is encoded into a uniform resource identifier for the structured data such that a record key is directly used in the uniform resource identifier, if the record key does not collide with a uniform resource identifier of the representational state transfer server node.
According to yet another exemplary embodiment, there is provided a method comprising recursive application of map and/or reduce operations to the structured data, wherein, if needed, the result of one operation is fed to another operation .
According to yet another exemplary embodiment, there is provided a method comprising storing, at least temporarily, the result and/or one or more intermediate results.
According to yet another exemplary embodiment, there is provided a method comprising using the result in the server node in order to manage the functioning of the network element .
According to yet another exemplary embodiment, there is provided an apparatus configured to receive, from a client node, a request to perform a computational task on structured data, the request identifying a data collection and the requested task; based on the request, perform the
computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and return a result of the computational task.
According to yet another exemplary embodiment, said first operation includes a map and/or a reduce operation of functional programming, and the second operation includes a map and/or a reduce operation of functional programming.
According to yet another exemplary embodiment, there is provided an apparatus configured to receive the request via a uniform interface.
According to yet another exemplary embodiment, the uniform interface comprises a hypertext transfer protocol interface and/or a representational state transfer interface.
According to yet another exemplary embodiment, there is provided an apparatus configured to receive the request from a representational state transfer client node. According to yet another exemplary embodiment, there is provided an apparatus configured to encode each operation into a uniform resource identifier for the structured data such that a record key is directly used in the uniform resource identifier, if the record key does not collide with a uniform resource identifier of the representational state transfer server node.
According to yet another exemplary embodiment, there is provided an apparatus configured to perform recursive application of map and/or reduce operations to the structured data and, if needed, feed the result of one operation to another operation.
According to yet another exemplary embodiment, there is provided an apparatus configured to store, at least
temporarily, the result and/or one or more intermediate results .
According to yet another exemplary embodiment, there is provided an apparatus configured to provide the result to the client node.
According to yet another exemplary embodiment, there is provided an apparatus configured to perform a map operation by performing a specified operation on a resource.
According to yet another exemplary embodiment, there is provided an apparatus configured to perform a reduce
operation by computing a new resource from an existing resource .
According to yet another exemplary embodiment, there is provided an apparatus comprising a hypertext transfer protocol server node and/or a representational state transfer server node.
According to yet another exemplary embodiment, there is provided an apparatus configured to use the result to control the functioning of a network element.
According to yet another exemplary embodiment, there is provided a client node configured to transmit, to a server node, a request to perform a computational task on structured data, the request identifying a data collection and the requested task, the computational task including applying a first operation to the data collection, and, if needed, applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and receive, from the server node, a response message including a result of the computational task.
According to yet another exemplary embodiment, there is provided a client node configured to use the result to control the functioning of a network element.
According to yet another exemplary embodiment, there is provided a client node configured to transmit the request to several server nodes in order to distribute data processing in a communications network.
According to yet another exemplary embodiment, there is provided a client node comprising a hypertext transfer protocol client node and/or a representational state transfer client node.
According to yet another exemplary embodiment, there is provided a client node configured to transmit the request via a uniform interface, wherein the uniform interface comprises a hypertext transfer protocol interface and/or a
representational state transfer interface.
According to yet another exemplary embodiment, there is provided a communications system configured to control the functioning of a network element by receiving, from a client node, a request to perform a computational task on structured data, the request identifying a data collection and the requested task; based on the request, performing the
computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and returning a result of the
computational task.
According to yet another exemplary embodiment, there is provided a computer-readable storage medium embodying a program of instructions executable by a processor to perform actions directed toward controlling the functioning of a network element by receiving, from a client device, a request to perform a computational task on structured data, the request identifying a data collection and the requested task; based on the request, performing the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and returning a result of the computational task. It will be obvious to a person skilled in the art that, as the
technology advances, the inventive concept can be implemented in various ways. The invention and its embodiments are not limited to the examples described above but may vary within the scope of the claims.
List of abbreviations
REST representational state transfer
URL uniform resource locator
RPC remote procedure call
SQL structured query language
URI uniform resource identifier
HTTP hypertext transfer protocol
API application programming interface
IT information technology
OSS/BSS operation and maintenance subsystem/base station system
LTE long term evolution
GSM global system for mobile communications
UMTS universal mobile telecommunications system
WCDMA wideband code division multiple access
EDGE enhanced data rates for GSM evolution
WLAN wireless local area network
MSC mobile switching centre

Claims

Claims
1. A method for distribution of data processing, the method comprising controlling the functioning of a network element (103) by
receiving (401), from a client node (102), a request to perform a computational task on structured data, the request identifying a data collection and the requested task;
based on the request, performing the computational task by applying (403) a first operation to the data collection, and, if needed, by applying (403) one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and
returning (406) a result of the computational task.
2. A method according to claim 1, wherein said first
operation includes a map and/or a reduce operation of functional programming, and the second operation includes a map and/or a reduce operation of functional programming.
3. A method according to claim 1 or 2, wherein it comprises receiving the request via a uniform interface (105) .
4. A method according to claim 3, wherein the uniform interface (105) comprises a hypertext transfer protocol interface and/or a representational state transfer interface.
5. A method according to any of claims 1 to 4, wherein it comprises receiving the request in a representational state transfer server node (104) from a representational state transfer client node (102) .
6. A method according to claim 5, wherein each operation is encoded into a uniform resource identifier for the structured data such that a record key is directly used in the uniform resource identifier, if the record key does not collide with a uniform resource identifier of the representational state transfer server node.
7. A method according to any of claims 1 to 6, wherein it comprises recursive application of map and/or reduce
operations to the structured data, wherein, if needed, the result of one operation is fed to another operation.
8. A method according to any of claims 1 to 7, wherein it comprises storing, at least temporarily, the result and/or one or more intermediate results.
9. A method according to any of claims 1 to 8, wherein it comprises using the result in the server node (104) in order to manage the functioning of the network element (103) .
10. An apparatus (104) configured to
receive, from a client node (102), a request to perform a computational task on structured data, the request
identifying a data collection and the requested task;
based on the request, perform the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and
return a result of the computational task.
11. A apparatus according to claim 10, wherein said first operation includes a map and/or a reduce operation of functional programming, and the second operation includes a map and/or a reduce operation of functional programming.
12. An apparatus according to claim 10 or 11, wherein it is configured to receive the request via a uniform interface (105) .
13. An apparatus according to claim 12, wherein the uniform interface (105) comprises a hypertext transfer protocol interface and/or a representational state transfer interface.
14. An apparatus according to claim 10, 11 or 12, wherein it is configured to receive the request from a representational state transfer client node (102) .
15. An apparatus according to claim 14, wherein it is configured to encode each operation into a uniform resource identifier for the structured data such that a record key is directly used in the uniform resource identifier, if the record key does not collide with a uniform resource
identifier of the representational state transfer server node .
16. An apparatus according to any of claims 10 to 15, wherein it is configured to perform recursive application of map and/or reduce operations to the structured data and, if needed, feed the result of one operation to another
operation.
17. An apparatus according to any of claims 10 to 16, wherein it is configured to store, at least temporarily, the result and/or one or more intermediate results.
18. An apparatus according to any of claims 10 to 17, wherein it is configured to provide the result to the client node
(102) .
19. An apparatus according to any of claims 10 to 18, wherein it is configured to perform a map operation by performing a specified operation on a resource.
20. An apparatus according to any of claims 10 to 19, wherein it is configured to perform a reduce operation by computing a new resource from an existing resource.
21. An apparatus according to any of claims 10 to 20, wherein the apparatus comprises a hypertext transfer protocol server node and/or a representational state transfer server node.
22. An apparatus according to any of claims 10 to 21, wherein it is configured to use the result to control the functioning of a network element (103) .
23. A client node (102) configured to
transmit, to a server node (104), a request to perform a computational task on structured data, the request
identifying a data collection and the requested task, the computational task including applying a first operation to the data collection, and, if needed, applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data.
24. A client node (102) according to claim 23, wherein it is configured to receive, from the server node (104), a response message including a result of the computational task.
25. A client node (102) according to claim 23 or 24, wherein said first operation includes a map and/or a reduce operation of functional programming, and the second operation includes a map and/or a reduce operation of functional programming.
26. A client node (102) according to claim 23, 24 or 25, wherein it is configured to use the result to control the functioning of a network element (103) .
27. A client node (102) according to any of claims 23 to 26, wherein it is configured to transmit the request to several server nodes (104) in order to distribute data processing in a communications network.
28. A client node (102) according to any of claims 23 to 26, wherein it comprises a hypertext transfer protocol client node and/or a representational state transfer client node.
29. A client node (102) according to any of claims 23 to 27, wherein it is configured to transmit the request via a uniform interface (105), wherein the uniform interface comprises a hypertext transfer protocol interface and/or a representational state transfer interface.
30. A communications system configured to control the functioning of a network element (103) by
receiving, from a client node (102), a request to perform a computational task on structured data, the request
identifying a data collection and the requested task;
based on the request, performing the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and
returning a result of the computational task.
31. A computer-readable storage medium embodying a program of instructions executable by a processor to perform actions directed toward controlling the functioning of a network element (103) by
receiving, from a client node (102), a request to perform a computational task on structured data, the request
identifying a data collection and the requested task;
based on the request, performing the computational task by applying a first operation to the data collection, and, if needed, by applying one or more second operations to a result of a previous operation, wherein each operation is encoded into a uniform resource identifier for the structured data; and
returning a result of the computational task.
PCT/EP2011/052208 2011-02-15 2011-02-15 Distribution of data processing WO2012110079A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2011/052208 WO2012110079A1 (en) 2011-02-15 2011-02-15 Distribution of data processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2011/052208 WO2012110079A1 (en) 2011-02-15 2011-02-15 Distribution of data processing

Publications (1)

Publication Number Publication Date
WO2012110079A1 true WO2012110079A1 (en) 2012-08-23

Family

ID=44625200

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2011/052208 WO2012110079A1 (en) 2011-02-15 2011-02-15 Distribution of data processing

Country Status (1)

Country Link
WO (1) WO2012110079A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140214996A1 (en) * 2013-01-29 2014-07-31 Stg Interactive S.A. Distributed Computing Architecture
WO2014146441A1 (en) * 2013-03-18 2014-09-25 Tencent Technology (Shenzhen) Company Limited Method, server and system for processing task data
US9280384B2 (en) 2013-03-18 2016-03-08 Tencent Technology (Shenzhen) Company Limited Method, server and system for processing task data
US9338234B2 (en) 2014-04-16 2016-05-10 Microsoft Technology Licensing, Llc Functional programming in distributed computing
CN107689968A (en) * 2016-08-03 2018-02-13 阿里巴巴集团控股有限公司 Processing system, the method and device of task

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028543A1 (en) * 2001-08-01 2003-02-06 Dusberger Dariusz T. Image storage and reference using a URL
EP1441281A2 (en) * 2003-01-23 2004-07-28 Hewlett-Packard Development Company, L.P. Processing a printer control command
US20080098370A1 (en) * 2006-10-20 2008-04-24 Marcus Felipe Fontoura Formal Language and Translator for Parallel Processing of Data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028543A1 (en) * 2001-08-01 2003-02-06 Dusberger Dariusz T. Image storage and reference using a URL
EP1441281A2 (en) * 2003-01-23 2004-07-28 Hewlett-Packard Development Company, L.P. Processing a printer control command
US20080098370A1 (en) * 2006-10-20 2008-04-24 Marcus Felipe Fontoura Formal Language and Translator for Parallel Processing of Data

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140214996A1 (en) * 2013-01-29 2014-07-31 Stg Interactive S.A. Distributed Computing Architecture
EP2951690A1 (en) * 2013-01-29 2015-12-09 STG Interactive S.A. Distributed computing architecture
US9313087B2 (en) * 2013-01-29 2016-04-12 Stg Interactive, S.A. Distributed computing architecture
US9860192B2 (en) 2013-01-29 2018-01-02 Stg Interactive, S.A. Distributed computing architecture
WO2014146441A1 (en) * 2013-03-18 2014-09-25 Tencent Technology (Shenzhen) Company Limited Method, server and system for processing task data
US9280384B2 (en) 2013-03-18 2016-03-08 Tencent Technology (Shenzhen) Company Limited Method, server and system for processing task data
US9338234B2 (en) 2014-04-16 2016-05-10 Microsoft Technology Licensing, Llc Functional programming in distributed computing
CN107689968A (en) * 2016-08-03 2018-02-13 阿里巴巴集团控股有限公司 Processing system, the method and device of task

Similar Documents

Publication Publication Date Title
US10791190B2 (en) Systems and methods for avoiding server push of objects already cached at a client
US11509741B2 (en) Managing mobile device user subscription and service preferences to predictively pre-fetch content
US10063653B2 (en) Distributed server architecture for supporting a predictive content pre-fetching service for mobile device users
US9705922B2 (en) Cloud-based user-level policy, reporting, and authentication over DNS
US8073810B2 (en) Shared view of customers across business support systems (BSS) and a service delivery platform (SDP)
CN103685590B (en) Obtain the method and system of IP address
US9681003B1 (en) Method and system for managing device status and activity history using big data storage
US20110214051A1 (en) Methods and apparatus to subscribe for change notifications in a document management system
US9172765B2 (en) Polling-based secure network message notification system and method with performance enhancing features
CN102291243A (en) Service processing server, system and method
US20120191876A1 (en) Method and system for policy based transcoding brokering
US10798577B2 (en) Unified data repository proxy
US9952888B2 (en) Method and system to dynamically instantiate virtual repository for any services
US20220272010A1 (en) Network entities for supporting analytics generation
WO2012110079A1 (en) Distribution of data processing
US20060259523A1 (en) System and method of synchronization of internal data cache with wireless device application data repositories
US20140040376A1 (en) Method and apparatus for updating personal information in communication system
EP4189997A1 (en) Service request handling
CN101753561B (en) Business cluster processing method and cluster system
CN104980329A (en) Address book management method address book management device and mobile agent server
US9742674B1 (en) Methods for distributed application visibility and reporting and devices thereof
KR101196636B1 (en) Presence management system using the list query and presence management method of the same
CN117880075A (en) Data management method, server side, client side and system
WO2009024099A1 (en) A method to implement network directory inquiries and a network directory inquiries server

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11704965

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11704965

Country of ref document: EP

Kind code of ref document: A1