The present invention generally relates to services and enhanced possibilities to deploy a service and after that to control, adjust, charge, and report the use of the service.
Service management requires the implementation of a number of various communication methods between network operators and service providers. A service provider may need to use different communication methods with different network operators. A communication method includes more than message routing and an application protocol, such as wireless application protocol (WAP). Using a router, such as the First Hop message router manufactured by the applicant, can solve the drawback of different communication methods. A router provides so called messaging connectivity.
Internet-based services use, for example, the following protocols: IP, TCP, UDP, or Hyper Text Transfer Protocol (HTTP). Messaging-based services available today mainly use short message service (SMS), enhanced messaging service (EMS), or multimedia messaging service (MMS) messages to reach end-users.
The applicant's two previously filed patent applications are notably related to the background of the invention.
FI20011813 generally relates to messaging services. It teaches that messages should be classified to control, adjust, and report the use of a service in an economic way. The classification of messages is based on some characteristics of messages, for example, on sender, length, date, time, or price information of messages. The classification may also be based on the content of the message, which can be traced by comparing matching words or bit patterns. The classification affects which processing rules are obeyed. For example, the said message is: 1) rejected or deleted, 2) altered, or 3) directed to other media than the original receiver, 4) saved to a data-base, 5) responded to with certain logic or 6) left untouched and transmitted to the receiver. The patent application FI20011813 teaches how to classify messages and map each classified message to a certain processing rule and then handle the classified messages according to the processing rules.
PCT/FI02/00270 deals with the controlling and managing aspects of messaging services. It describes a messaging manager that provides user interfaces and tools for making message classifications of. The classifications and predefined task specifications are stored in a profile database. The messaging manager also provides a common mechanism for authorizing and supporting the use of messaging services. The mechanism is based on the use of the profile database.
Both patent applications FI20011813 and PCT/FI02/00270 relate to messaging services, but some of their teachings can be also utilized in a system where a service operator hosts several Internet service providers.
The first drawback is that there is a lack of detailed and reliable statistics concerning the use and operation of services. For this reason, the business reporting facilities are poor, which increases the business risks of service providers.
The second drawback is that the processes and tools for allowing service providers to test and deploy Internet services are incomplete in the system where a service operator hosts several Internet service providers.
The third drawback is that there is a lack of tools for controlling and supporting the use of services.
To summarize, the co-operation of service operators and service providers could be arranged in a better way than in the prior art.
In addition to the above-mentioned drawbacks there is a drawback related to billing. Many end-users experience that the billing based on the amount of traffic in GPRS, WAP, and other packet-based communication is unfair. When a communication link is slow, for one reason or other, there are a lot of retransmission requests and the quality of service is disappointing. However, the retransmitted packets cause that billing is higher compared to a case where the communication link operates normally. The billing systems of service operators are made for bulk transmission, i.e. the used capacity is always billed. The billing systems could charge end-users taking into account whether the communication was successful or not.
The main objective of the invention is to solve the above-mentioned drawbacks of the prior art. In order to reach this, a session of a communication network should be considered as a set of transactions, each transaction of the said set having a certain transaction type.
A system accordant with the invention manages transactions and performs predefined tasks mapped to the said transactions.
The system is adapted to operate as follows. First, it identifies a transaction's type. The transaction is related to at least one message transmitted in a communication network during a session. The transaction type identified is mapped to a token belonging to an input alphabet of an automaton. Secondly, the system inputs the token into the automaton. Thirdly, the system performs a set of predefined tasks according to the response of the automaton. The predefined tasks may concern analysing the use of a service, charging of an end-user, etc.
The system is termed a transaction manager, because it identifies transactions. The system described in PCT/FI02/00270 is termed a messaging manager, because it identifies messages, especially short messages. Both systems can provide versatile management possibilities for users through their user interfaces.
The first important aspect in the transaction manager is that it is able to identify a transaction type. The transaction manager is typically located in a communication network in which it handles several simultaneous sessions and transmits messages between end nodes.
The second, even more important aspect is that the transaction manager inputs a token, which corresponds to the type of the transaction identified, into an automaton. The automaton concept is very powerful in this context. By means of it the transaction manager can recognize transactions composed of messages, as well as transaction sets composed of the recognized transactions.
The transaction manager can be utilized, for example, in node handling HTTP sessions. A successful HTTP session contains the following transactions: 1) a client opens a TCP connection to a server, 2) the client sends a service request to the server, 3) the server sends a response to the client, and 4) the client closes the TCP connection. In a successful HTTP session, transaction 3 should follow transaction 2. The transaction manager may verify this and report, if transaction 3 does not follow transaction 2. Reporting is just one example of a predefined task performed by the transaction manager. If needed, a special type of transaction can be added to messages. This way the transactions related to the messages can be classified very precisely.
The transaction manager may be placed in a server which is owned by a service provider and which provides a service. Alternatively, the transaction manager may be placed in a server owned by a service operator. The said server can be connected to a message router providing messaging connectivity between the service providers and the network operators. In other words, the message router hides possible differences in communication methods when a service of a service provider communicates with equipment of the network operators.
In addition to the transaction manager, the invention comprises the method used in the transaction manager.
The invention is described more closely with reference to the accompanying drawings, in which
In this patent application a basic assumption is that a session of a communication network is composed of at least one connection and each connection is composed of at least one transaction, and each transaction is composed of at least one message. It should be noticed that those messages are not necessarily of the same type. Messages may include search keys as in PCT/FI02/00270 and the transaction manager may use them in the same way as the messaging manager. A search key may indicate a transaction type. However, the transaction manager can identify transactions without any search key. The transaction manager performs or initiates tasks on the basis of the identified transactions. The operation of the transaction manager is greatly based on computing theory, especially automatons. Therefore the automaton concept and some other concepts are shortly discussed.
A regular expression is a character string, which is composed of the characters of a certain alphabet so that the regular expression includes 1) consecutive characters and/or 2) alternative characters, and/or 3) repetitive characters. For example, an alphabet ‘A’ may consist of characters ‘b’ and ‘c’. This is marked A={b, c}. Let us assume that a regular expression is composed of the characters of the alphabet A. The said regular expression may include consecutive characters, such as “bc”, alternative characters, i.e. ‘b’ or ‘c’, and/or repetitive characters, such as “bbbb” which is marked (b)*.
Recognition means that a character string is recognized by using a rule set. For example, a single rule could be: “Is a character string accordant with a regular expression?” Let us say that the character string is “bc” and the regular expression is “bc”. Then the character string is accordant with the regular expression. Actually, no other character string is. Parsing differs from the recognition in that parsing concerns the structure composed of character strings. The character strings may, for example, be words of a spoken language. For example, in an English sentence “Billy a boy is” all the character strings “Billy”, “a boy”, and “is” are correct words, but parsing results in that the word order of the sentence is incorrect accordant with English grammar.
A so-called finite automaton comprises: 1) a state alphabet, 2) an input alphabet, 3) a rule set, 4) an initial state, and 5) a set of final states. If the rules of the rules set are such that in every state of an automaton it is possible to follow only one rule, the automaton is deterministic. There are many types of automatons described in the prior art. The space complexity of a deterministic finite-state automaton is constant, which simplifies the making of programs. Therefore the said automaton type is much used in computer programs and we concentrate on its description.
A deterministic finite-state automaton accepts a character string, if the character string is accordant with a certain regular expression. Otherwise, it rejects the character string. For example, an automaton ‘M’ could comprise three states, which are marked q1, q2, and q3, and two rules, which are marked q1b→q2 and q2c→q3. The rule q1b→q2 is termed “a transition on b from the state q1 to the state q2”, and the rule q2c→q3 is termed “a transition on c from the state q2 to the state q3”. Let us assume that the state q1 is an initial state and the state q3 is a final state. Then the automaton M is marked as follows:
M=({q1, q2, q3}, {b, c}, {q1b→q2, q2c→q3}, q1, {q3}),
wherein the set {q1, q2, q3} is the state alphabet, the set {b, c} is the input alphabet, the set {q1b→q2, q2c→q3} is the rule set, the state q1 is the initial state, and the set {q3} comprises the final states. The operation of the automaton M is very simple. It accepts only the character string “bc” and rejects all other character strings.
To show how a deterministic finite-state automaton can be utilized in connection with HTTP sessions, we define an alphabet AHTTP. We may map characters to the HTTP transaction types, for example, as follows:
a transaction type in which a client opens a TCP connection to a server is mapped to the character O.
a transaction type in which the client sends a service request to the server is mapped to the character S.
a transaction type in which the server sends a response to the client is mapped to the character R.
a transaction type in which the client closes the TCP connection is mapped to the character C.
The alphabet AHTTP is composed of characters O, S, R, and C, i.e.
AHTTP={O, S, R, C}.
As mentioned above, in a successful HTTP session a client opens a TCP connection, sends one or more service requests to a server, obtains one or more responses, and closes the TCP connection. Then the client may open a new connection within the HTTP session, etc. A successful HTTP session can be defined more precisely by writing a regular expression EHTTP:
EHTTP=(O(SR)*C)*
which is composed of the characters of the alphabet AHTTP.
A deterministic finite-state automaton MHTTP that recognizes the regular expression EHTTP is defined as follows:
MHTTP=(Q, AHTTP, P, q1, {q3}),
wherein the state alphabet Q={q1, q2, q3, q4, q5}, AHTTP is the input alphabet, the rule set P={q1O→q2, q2S→q3, q3R→q4, q4C→q5, q4S→q3, q5O→q2}, q1 is the initial state, and {q3} is the set of final states.
The automation MHTTP is just one example of an automaton that can be utilized in the method accordant with the invention. An appropriate automaton is used in the third method step.
The method can be utilized, for example, to analyse the operation of a service providing HTML pages. The analysis is performed by using an automaton MA. Service requests and responses of the automaton MA are divided into two categories. The first category comprises the service requests addressed to HTML pages of a client. Those service requests are marked with S1 and the corresponsive responses are marked with R1. The second category comprises the service requests addressed to other HTML pages, which are reachable through the links of the HTML pages of the client. This is a typical situation when the client has placed banners on the HTML pages. Clicking of any banner of the HTML pages results in a service request that is marked with S2. The corresponsive response is marked with R2.
The automaton MA accepts character strings that are accordant with the regular expression EA=(O(S1R1)*(S1R1 U S2R2)*C)*.
Generally speaking, a counter is mapped to some rule of an automaton. The counters can be organized to an operation table describing in detail the operation of a service within different transactions. The operation table is formed so that its first dimension is composed of the states of an automaton and its second dimension is composed of the input alphabet of the automaton, and each element of the operation table contains a counter.
As shown above, the counters can be organized to an operation table. Alternatively, the counters can be organized to counter sets so that there is a mapping between a certain state of an automaton and a certain counter set. We use the automaton MA as an example to illustrate counter sets. The definition of the automaton MA is the following:
According to the rule set of the automaton MA, the states q1, q2, q3, q5, and q7 are such states that one transition is possible. Therefore each of the said states is related to a counter set composed of one counter.
According to the rule set of the automaton MA, the states q4 and q6 are such states that three transitions are possible. Therefore each of the said states is related to a counter set composed of three counters.
The definition of an automaton can be utilized in many ways when naming counters and forming either counter sets or an operation table. The counter values can be used as statistical data when analysing the operation of a service.
Generally speaking, when a certain rule of an automaton is obeyed, at least one predefined task mapped to the said rule is performed. A set of predefined tasks may contain a task that changes a value of the counter. Then it is possible that a certain rule is obeyed only if the value of the counter meets a condition related to the rule.
Increasing a counter value is one example of a predefined task. Let us define automaton M′HTTP to give other examples of predefined tasks. The definition is the same as the definition of the automaton MHTTP described above, except that the rule set P′ of the automaton M′HTTP differs from the rule set of the automaton MHTTP. The rule set P′ is composed of rules q1O→q2, q2S→q3, q3R→q4, q4C→q5, q4S→q3, and q5O→q2 and a condition. The condition determines that a rule is obeyed only if a token (O, S, R, or C) is related to a unique communication message. The use of automaton M′HTTP requires that messages contain a sequence number and the states of an automaton are related to counters that store the highest sequence numbers detected. If a received message contains a sequence number that exceeds the highest sequence number detected in a current state of an automaton, the said message is charged. The idea is that each unique message is charged only once. This makes billing more fair-minded when messages must be retransmitted due to communication network problems. The condition can be mapped, for example, to the rules q2S→q3, and q4S→q3 in which an end-user initiates a service request. Each service request can be charged in a different way. The condition may also be mapped to the rule q3R→q4, when the end-user is charged for the messages sent by a service. Thus, predefined tasks within the automaton M′HTTP concern charging.
The transaction manager is a system using the method described in
For example, the transaction manager can be placed in a server cluster handling messages in a communication network. If the server cluster contains a master server through which all messages and transactions are received, the transactions manager is preferably placed in the master server. Then the master server is responsible for automatons of the transaction manager and the master server updates the states of the automatons when it handles messages.
If there is no master server, i.e. the members of a server cluster are equal, the members share automatons and update the automatons in cooperation. This can be performed so that each time a member identifies the type of a transaction, it sends the corresponsive token to the other members of the server cluster. Then the said members update their copy of the automatons.
Number | Date | Country | Kind |
---|---|---|---|
20030346 | Mar 2003 | FI | national |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/FI04/50023 | Mar 2004 | US |
Child | 11219750 | Sep 2005 | US |