Abstract:
The present invention relates to a method and a system to automate identification of transactions. The method comprises receiving raw log files from a transaction device into a log collector, storing the raw log files to a log storage, processing the raw log files by a log parser unit to remove the fields and the entries of the raw log files that are not relevant for the transaction identification analysis, identifying of at least one session of at least one user by clustering the processed one or more entries from a single user session using at least one session identifier unit, identifying at least one user path that is followed by at least one user during a single user session, identifying at least one entry point from the identified single user path and determining at least one transaction and at least one sub transaction from the identified entry point.

Description:
RELATED APPLICATION DATA 
       [0001]    This application claims priority to India Patent Application No. 4298/CHE/2013, filed Sep. 23, 2013, the disclosure of which is hereby incorporated by reference in its entirety. 
       FIELD OF THE INVENTION 
       [0002]    The present invention relates to a method to automate identification of transactions where the user performs actions on more than one web page in a sequence for completing a business transaction. 
         [0003]    Particularly, the present invention relates to a method and a system for automated transaction analysis where the analysis is from web log such that insights are derived at transaction level. 
         [0004]    More particularly, the present invention relates to a system and a method for automated transaction analysis using MapReduce framework. 
       BACKGROUND 
       [0005]    In any typical distributed application deployment, the web server(s) acts as the entry point for a web request coming from a client. Each web request that passes via the web server gets logged into the server logs as a log entry. So a web server log holds the entries for all the events that occur on the web server and thus on the applications. Each event entry provides information about a single request made to the web application. The entries help understand how the end user uses the application; in short the user behavior with the application. 
         [0006]    Depending on the configuration settings at the web server, some or all of the standard fields are logged in the production web logs. The web servers in production then automatically log the requested fields for any and every event that is invoked by an end user. 
         [0007]    MapReduce is a framework proposed by Google to process large sets of data by parallelizing the processing task across clusters of multiple computers. A problem at hand is decomposed into many small portions of work, map and reduce jobs. These jobs are passed on to any worker node in the cluster, a mapper or a reducer for processing. 
         [0008]    A mapper accepts a set of key-value as input and applies a user defined map function to generate an intermediate key-value pair. The output from multiple mappers is grouped together and passed on to the reducer. A reducer merges the intermediate values belonging to the same intermediate key using the user defined reduce function. 
         [0009]    So an underlying MapReduce implementation takes care of parallelizing and executing the programs on a large cluster of computer nodes. 
         [0010]    Apache Hadoop is one such implementation of MapReduce framework. It allows distributed computing in reliable and scalable way. It follows master/slave architecture. The master, called as jobtracker, decomposes the job and passes them onto its slaves, called as tastrackers, for execution and re-execution. 
         [0011]    To support such distributed computing over the data, it also provides a file system that itself can be distributed across multiple computer nodes, named as HDFS (Hadoop Distributed File System). 
         [0012]    Analysis of user behavior in using web applications is important as it helps provide insights needed to improve customer satisfaction by providing better experience. Webservers provide logs that contain user behavior related information like the web pages user traversed, the time user spent in performing an action, the time spent in thinking and so on. Analyzing weblogs can therefore provide useful information about customer behavior. 
         [0013]    With increasing use of internet, there are millions of users resulting in huge log files so there is a need for a scalable solution. Also there is a need to increase automation of the log analysis so that as web applications change, there is less human intervention needed. 
         [0014]    There are solutions that analyze web logs and provide transaction analytics given transaction definitions. There are solutions that provide analytics at URL levels which can then be aggregated at Transaction level if the transaction definitions are provided. 
         [0015]    The log analytics are typically performed at URL/page level by providing metrics, like page views, workload by status codes, response times etc., related to them. For any transaction level analysis, the transaction definition has to be provided by business where in they define the URL sequences. There are methodologies that can identify patterns in the URL sequences providing a map-like structure of the URL accesses. 
         [0016]    The drawbacks of the above mentioned prior art is that for business to provide transaction definition, they need complete domain knowledge with thorough site map information. This level of information of all the available resources is most often not available with the business and the development teams do not have the necessary domain knowledge. 
         [0017]    So there is chance of key transaction definitions not being provided and so critical information about them not identified. So what follows is the guesstimate to foresee the end-user behavior. This adds to the effort required and also the inaccuracies in the results extracted. The transaction definitions need to be updated whenever the web application is modified. So, the web log analysis can go out of synch with the web application if not updated periodically. 
         [0018]    Thus there is a need to provide a way to auto-identify the probable transactions from the historical log data collected. This provides a mechanism to discover analytics at business transaction level that are identified using the actual user behavior rather than guesstimates. 
         [0019]    The present disclosure proposes the usage of distributed file systems and MapReduce frameworks. This helps to reduce the resource requirements and the time consumed to perform the necessary algorithms, making the complete process efficient, and so feasible. The present disclosure method enables automation of transaction identification and transaction analytics. It improves on solutions with Transaction analytics by automating transaction identification from web logs. 
         [0020]    The feature of the present invention lies in providing better solution for transaction identification from web logs using a method for automated web transaction identification from web logs and applies MapReduce framework to provide automated transaction analysis so that processing can be parallelized and completed faster 
       SUMMARY 
       [0021]    According to one of the aspect of the present invention there is provided a method for automated transaction identification analysis. The method comprising receiving a plurality of raw log files from at least one transaction unit into one or more log collector unit and storing the plurality of raw log files to at least one log storage unit from the log collector unit, wherein the log storage unit comprises at least one distributed file system; 
         [0022]    Processing the raw log file using at least one log parser unit to remove one or more log fields and one or more log entries from the raw log file that is not relevant for the transaction identification analysis to acquire one or more processed entries. 
         [0023]    Identifying at least one session of at least one user by clustering the processed one or more entries from a single user session using at least one session identifier unit, such that the similar processed entries are clustered together to define a single user session. 
         [0024]    Identifying at least one user path that is followed by at least one user during a single user session from the clustered similar user entries using a path analysis unit and determine the length of each user path during a user session; such that one or more independent frequency and one or more total frequency are processed from the identified user paths. 
         [0025]    Identifying at least one entry point from the identified single user path, such that the entry point of the user path with the highest independent frequencies is defined as the entry point to the user path. 
         [0026]    Determining at least one transaction and at least one sub transaction from the identified entry point using a transaction identifier to get a plurality of individual transactions, a plurality of complete transactions and a plurality of sub transactions with their corresponding key metrics. 
         [0027]    According to another aspect of the present invention there is provided a system for automated transaction analysis. The system comprising a transaction device adapted to store a plurality of raw log files; a log collector operatively configured with the transaction device to collect the logs files from the transaction device. 
         [0028]    At least one log storage operatively configured with the log collector, wherein the log storage comprises a distributed file system to store the raw log files. 
         [0029]    At least one log parser operatively configured with the log storage to purge the raw logs files and get a plurality of processed entries. 
         [0030]    At least one session identifier operatively configured with the log parser to identify a plurality of single user sessions and its associated metrics; wherein the similar processed entries are clustered together to define a single user session. 
         [0031]    At least one path analyzer operatively configured with the session identifier to determine at least one path followed by the user during a single user session and its associated path metrics. 
         [0032]    At least one transaction analyzer operatively connected with the path analyzer to identifying at least one entry point from the determined single user path. 
         [0033]    At least one transaction identifier operatively connected with the transaction analyzer to identify transactions and sub transactions performed by the users from the identified entry point. 
         [0034]    One of the objects of the present invention is to overcome the drawbacks of the prior art. 
         [0035]    Another object of the present invention is to provide a System and Method for Automated Transaction Analysis Using MapReduce. 
         [0036]    Yet another object of the present invention is to provide an system and a method for insights on user behavior at transaction level such that they can be used to perform application enhancements, personalized recommendations. 
         [0037]    Yet another object of the present invention is to provide a solution that helps provide conceptualization and development of this solution requires application of skills, expertise, techniques and experience from multiple areas like big data technologies, high availability, application architecture, web analytics etc. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0038]      FIG. 1  illustrates the functional blocks of the system for automated transaction analysis. 
           [0039]      FIG. 2  illustrates the flowchart of the method steps of method for automated transaction analysis. 
           [0040]      FIG. 3  illustrates the steps mentioned above about the segregation of URLs by user sessions can be performed using MapReduce. 
           [0041]      FIG. 4  illustrates the resultant set of key-value from User Session level Segregation act as a start point to define the possible paths with varying degree (the length of the path). 
           [0042]      FIG. 5  illustrates the possible paths with varying degree and user path. 
       
    
    
     DETAILED DESCRIPTION 
       [0043]      FIG. 1  discloses the functional components of the proposed system. One or more log collectors  101  help collect the raw log files from the transaction device  102  and send them to the log storage component  104  which stores the raw log flies in a distributed file system  111 . The log parser component  110  helps parse the raw log files and get processed entries. 
         [0044]    The session identifier  105  gets the processed entries from the log parser helps identify user sessions using techniques like IP address of the client, sever side session management. The session identifier  105  also identifies the associated metrics of the user sessions as identified. The similar processed entries are clustered together to have a single user session. The URL analysis component  109  helps identify the associated metrics of the user session such metrics are the URL metrics like the start time, end time, bytes transferred and the like. 
         [0045]    The path analysis component  107  helps determine the URL paths followed by a user during a session and also associated metrics like the number of times the path is followed, the time spent by the user following the path, the time user spent performing actions and the time spent thinking and the like. 
         [0046]    The transaction identifier component  106  helps identify transactions performed by the users. The transaction analysis component  108  helps determine metrics associated with transaction like the number of times it was performed by different users, the time spent in performing the transactions, the entry and exit URLs. 
         [0047]    The reporting component  103  helps create reports and present the insights calculated by the transaction analysis component  108 . The user interface component  100  enables users to interact with this system to get transaction analysis results. 
         [0048]      FIG. 2  discloses the flowchart describing the method steps for automated transaction identification analysis using MapReduce. The present disclosure proposes a method to identify probable business transactions based on the historical log entries where the below mentioned steps are involved. 
         [0049]    Log aggregation and storage of raw log files in HDFS  210 , pre-process filtering, cleanup of raw log files to get purged or processed log entries  220 , user session level segregation to identify user sessions and segregate log entries by sessions  230 , potential path identification to identify user paths, calculate frequencies and analytics metrics  240 , entry points identification to identity start URLs and start transactions  250 , transaction and sub-transaction tagging to identify all transactions  260 , calculate transaction level analytics  270  and report transaction level analytics  280 . 
         [0050]    Each step of the above flowchart of  FIG. 2  is discussed individually in the subsequent sections. 
         [0051]    In the log aggregation and storage in HDFS step  210 , one or more log collectors extract the raw log files from multiple log generators or also known as the transaction device, typically the web servers and pass them on to the log storage component. This component store the raw files in the distributed file system HDFS. The log generators themselves can also act as log collectors. 
         [0052]    In the process filtering and cleanup step  220  before analyzing the logs for transaction definition, it is important to process the log files by removing the fields and the entries which are not relevant for the transaction identification process. Moreover all the entries have to be characterized based on the user information so that all the entries from a single user session are clustered together. This process is important as each user carries out a transaction independent of what the other user is doing during his session. So the entries pertaining to a single user session have to be considered while defining a transaction mutually exclusive of other user&#39;s actions. 
         [0053]    The steps that would be carried out to derive the entries in required format are the use the HTTP response status codes to identify the entries which are valid for identifying transactions to get a list of accepted entries. 
         [0054]    For example, entries with status codes 4xx represent user has erred while sending a request. Such entries are not to be considered as they represent invalid URLs. Typically the entries of type 2xx and 5xx are considered as valid entries which are received and accepted by the server. All the other entries can be discarded from the log files. 
         [0055]    Next step that is carried out to derive the entries in required format, the entries are purged by removing details for all the fields that are not important for defining transactions. The unwanted fields in an entry which do not help in identifying the transaction. Examples of such fields are method, Win32 Status and Protocol Version fields. 
         [0056]    The remaining entries are further purged to remove the entries for supporting resources like images, stylesheets, javascripts and the like. Similarly, the URI field can be further purged by removing the dynamic part of the sequence. This prevents same URL being tagged as unique because of changing dynamic part. 
         [0057]    The process filtering and cleanup step  220  provides a list of all the processed entries that are cleaned for unwanted entries and information. 
         [0058]    In the user session level segregation  230 , the IP-address, cookie, user name or session information can be used to identify the same user entries. So all the entries are clustered by such fields in an application, whichever is present in a log file. Entries from a similar IP-address or a cookie or a user name would then be considered as URLs from a single user session. These clusters will be used going forward to identify unique URL sequences. 
         [0059]      FIG. 3  discloses the steps mentioned above about the segregation of URLs by user sessions can be performed using MapReduce  300 . The Jobtracker node spawns multiple Map and reduce tasks to process the log files. These tasks are distributed and executed at the various data nodes which contain the blocks of the log files being processed. At map phase, a file block is read and converted into sets of key-value pairs denoted by &lt;LogFilePos, Log Entry&gt; where LogFilePos is the position of the log entry in the log and LogEntry is the log entry  310 . A map function is defined to segregate the entries into different sessions using IP-address/session-IDs or usernames the map function parses the log entry using the LogParser component and identifies the user and session identifiers using the session identifier component  320 . Various URL metrics like start time, end time, bytes are computed using the URLAnalysis component  330 . Output is created as key-value pair of &lt;SessionID, URLMetrics&gt;  340  which are then passed to the reduce phase  350 . 
         [0060]    The MapReduce framework aggregates all the URLMetric value objects by session ID and passes it to the reduce function  370  from map phase  360 . The reduce function creates a final set of key-value pairs &lt;sessionID, [URLMetrics]&gt;, where [URLMetrics] is an array of the URLMetric objects with the sequence of URLs used in the session and the corresponding metrics  380 . 
         [0061]    The above steps result in a set of entries sorted and clubbed by user sessions. Each entry comprises of only the cleaned up and requisite fields. 
         [0062]    The potential paths identification as disclosed in  FIG. 4  discloses the resultant set of key-value from user session level segregation act as a start point to define the possible paths with varying degree (the length of the path). 
         [0063]      FIG. 4  discloses a map function  400  is defined that, starting with the first entry in every URL sequence [URLMetrics] for a single user session sessionID, uses sliding window mechanism to identify possible paths within minimum and maximum length threshold. The related path metrics are also calculated. 
         [0064]    The jobtracker takes the output &lt;sessionID&gt;, [URLMetrics] from previous job and passes it on to map functions  410 . The map function uses the PathAnalysis component to identify the various paths and associated metrics like path time, think time etc  420 . The output is a key-value pair &lt;pathID, PathMetric&gt;. Here pathID is the unique id assigned to the identified path derived from the URLs that are part of the path and PathMetric is the object that comprises of URLSeq, a sequence of URL in this path, and the associated path analytic metrics, one key metric being the frequency (the count of occurrence of a particular path). In the map function the frequency of each path processed is set to 1. The &lt;PathID, PathMetric&gt; key-value pairs are then sent to the reduce phase. In the reduce phase the MapReduce framework aggregates the PathMetric value objects for each key value of PathID and the aggregated collection to the reduce function. In the reduce function the metrics are aggregated like the total frequency of a path indicating how many times users followed the URL path, independent frequency, which is the number of times users followed this path uniquely etc. 
         [0065]    For example, for a single user session say the URL sequence is as follows: A1, A2, A3, A4, A5. The possible paths will be as disclosed in  FIG. 5 . 
         [0066]    So at the end of a map and reduce job execution what we get is the set of pathIDs, a unique representation as URLs involved (like A1 A2 etc.) and the associated metrics for that PathID. The key metrics calculated, but not limited to, are average time required to complete the path (difference between start and end times), frequency of the pathID (number of times the path is followed) and the independent frequency. 
         [0067]    The independent frequency is found out by discarding the counts for overlays of the path in the paths with higher frequencies. For example in above example, the path [A1, A2] is part of two other paths [A1, A2, A3] and [A1, A2, A3, A4]. So the independent frequency of the path [A1, A2] would be calculated by removing the counts of [A1, A2, A3] and [A1, A2, A3, A4]. Once independent count is calculated, a path&#39;s independent frequency percentage value in respect to its total frequency is also calculated. 
         [0068]    In the entry points identification  250  the next the probable entry points to the paths are identified. The key idea here is the start points of the paths with highest independent frequency can be probable candidates for entry points. To find out a list of entry points certain steps are followed. 
         [0069]    Filtering the complete list of paths for the ones that have independent frequency percentages as 100. These paths represent the ones which do not overlap with any other paths and are carried out independently by the end users. 
         [0070]    Sorting the list generated as an output from [0068] by independent frequency count and note the start points i.e. first URL entry of the urlSeq object, of the sorted list. 
         [0071]    Starting with the first path in the list, modify the urlSeq of the current path by discarding the entries which cycle back to the identified start points. 
         [0072]    Recalculating the degrees of the path and discard the paths whose degree falls below the minimum degree threshold. Also remove the entry from the entry point list. 
         [0073]    Repeating the step of [0070] and of [0071] till all the paths are processed. 
         [0074]    At the end of [0073], a list of all the probable entry points which then can be used to tag all the transactions and sub-transactions. 
         [0075]    The transaction and sub-transaction tagging  260  where the ends points identified provide an insight of what can be probable transactions. However, the log entries also include the sequences which do not represent a complete transaction. 
         [0076]    For example, a transaction A1, A2 might not be a transaction if there is already a defined transaction A1, A2, A3. Such sequences are tagged as sub-transactions. The using the entry-points, total frequency and individual frequency to tag all the URL sequences as transactions and sub-transactions. The following steps are involved: 
         [0077]    Modifying the paths by discarding the sub-paths which have a reference back to an entry point. Such sub-path represent user intended to start a new transaction, by ending the current browsing sequence. 
         [0078]    For example say A3 is an entry point as identified in step 2.5. Then a path A1, A2, A3, A4, A5 will be modified to A1, A2 by discarding the complete sub-path A3, A4, A5 as it points back to the entry point A3. 
         [0079]    Discarding all the paths that have a modified degree below the minimum degree threshold. 
         [0080]    Identifying all paths in the modified paths list that do not overlay with any other path. Tag all such transactions as paths 
         [0081]    Identifying all the paths which overlay with the transactions identified above. Tag these paths as their sub-transactions. 
         [0082]    At the end of the above steps, a list of all the individual, complete transactions and their sub-transactions along with key metrics associated with them are found. 
         [0083]    Calculating and reporting of transaction level analytics  270  and  280  are performed once all the transactions are identified, key analytics is calculated for them by using the key fields logged in the log files. This step can be done as part of the identification itself or performed once all the transactions are identified. 
         [0084]    The key analytics that are found out and reported are mentioned, and not limited to, below: 
         [0085]    Average time taken to complete a transaction: Such metric provides information about if the users are completing the transactions in stipulated time or are spending too much time. This information is used to identify the improvements necessary for speeding the user interaction. 
         [0086]    Percentage of the transaction completions and drop-outs: Such metric provides insight into whether users are dropping off before completing a transaction, indicating a pattern in user behavior. Again, this information is used to identify the issues or struggles at user level and its effects on business. 
         [0087]    Sub-transactions and their percentages: Such metric provides information on what are the key sub-paths the users follow. The frequencies of transactions and sub-transactions are also calculated