|By Andreas Grabner||
|October 28, 2011 11:15 AM EDT||
The term Business Transactions and Business Transaction Management is widely used in the industry but it's not always well understood what we really mean by it. The BTM Industry Portal provides some good articles on this topic and is definitely recommended to check out. The general goal is to answer business-relevant questions that business owners have for application owners: "How much revenue is generated by a certain products?", "What are my conversion and bounce rates and what impacts them?" or "Do we meet our SLAs to our premium account users?"
Challenge 1: Contextual Information Is More than just the URL
In order to answer these questions we need information captured from the underlying technical transactions that get executed by your applications when users interact with your services/web site. Knowing the accessed URL, its average response time and then mapping it to a Business Transaction is the simplest form of Business Transaction Management - but doesn't work in most cases because modern applications don't pass the whole business transaction context in the URL.
Business Context information such as the username, product details or cash information usually comes from method arguments, the user session on the application server or from service calls that are made along the processed transaction.
Challenge 2: Business Context Is Somewhere Along a Distributed Transactions
Modern applications are no longer monolithic. The challenge with that is that transactions are distributed, they take different paths, and data we need for our business context (username, product information, cash information...) is often available on different tiers. This requires us to trace every single transaction across all tiers in order to collect this data for a single user transaction:
Every transaction is different, it involves different services, crosses multiple tiers and we need to capture business information along the full end-to-end transaction
Challenge 3: Understanding Your Users Means: All Users, All Actions, All the Time
Knowing that a certain transaction of a user failed, including all contextual information, is great. In modern applications users have many ways to reach a certain point in the application, e.g.: checking out. So the questions are: How did the user get to this point? What were the actions prior to the problem? Is one of the previous actions responsible for the problem we see?
In order to answer these questions we need access to all transactions of every single user. This allows us to understand:
- How our users interact with the system
- How users reach our site (identify Landing Pages)
- Where users drop off the site (important for bounce rate and bounce page evaluation)
- Which paths tend to lead to errors
It also supports a critical use case in Business Transaction Management which is User Complaint Resolution, e.g., when user "Maria" calls the support line we can look up all her transactions, follow her steps and identify where things went wrong:
Knowing every action of every user allows us to better understand our users, follow their click path and speed up individual problem resolutions
Why Continue Reading?
In this article I provide more examples on Business Transaction Management and focus on the challenges I just explained:
- It's more than just URLs we need to analyze as modern web applications are more complex
- We live in a distributed transactional world where business context data can come from every involved tier
- We need to focus on every user and every action to understand our users
To make it easier to understand I also bring examples from PGAC and other real-life BTM implementations.
An Example of Business Transactions
Let's assume we have a website for a travel agency. The interesting business data for this type of application is
- What destinations are people searching for as I want to make sure I offer trips to those regions and people find what they are looking for
- How many trips are actually being sold?
- How much money do we make?
- How many people that search actually buy (convert)? Are there certain trips that have a better conversion rate?
From a technical perspective we can monitor every single technical transaction - that means we can look at every single Web Request that is processed by our application server. If we do that, we basically look at a huge set of technical transactions. Some of these transactions represent those that handle search requests. Some of them handle the shopping cart or check-out procedure. The first goal for us, however, is to identify the individual business transactions such as "Search":
Among all technical transactions we want to identify those that perform a certain Business Transaction, e.g., Search, Checkout, Logon...
Now not every search is the same. In our case the search keyword or trip destination is interesting so we want to split the search transactions by the destination used in the search criteria. That allows us to see how many search requests are executed by destination and also how long these search requests take to execute. Assuming we have to query external services to fetch the latest trip offerings, it could be very interesting to see how fast or slow searches for specific destinations are or whether the number of search results impacts query time and therefore user experience.
Splitting the searches by destination allows us to see how many searches are actually executed and whether there are any performance implications on specific destinations
The next interesting aspect is of course the actual business we do or don't do. If our website serves different markets (US, EMEA, ASIA...) it's interesting to see revenue by market. The next illustration shows that we can focus on the actual Purchase Business Transactions. On these we evaluate generated revenue, the market that generated the revenue and whether there is a performance impact on business by looking at Response Time as well.
Looking at those Business Transactions that actually handle the purchase allows us to see how much money we actually make split by markets we serve
Contextual Information for Every Transaction
In order for all of this to actually work we need more than just capturing the URL and Response Time. A lot of times the type of context information we need is in the user session, in the HTTP POST Body or some parameter on a method call or SQL Bind Value. The next illustration shows us what technical information we are talking about in order to map these values to Business Transactions.
Capturing context information for every single technical transaction is mandatory for business transaction management
As we live in a distributed transactional world we need the full end-to-end transaction and on that transaction the ability to capture this type of technical but business relevant data.
Every Action of Every Visit to Identify Landing Pages, Conversion and Bounce Rates
Some of the most interesting metrics for Business Owners are Conversion Rates, Bounce Rates, User Satisfaction and how well Landing Pages do. In order to get these metrics we need to identify every individual user (typically called Visitor), all actions (individual technical transactions/requests) for the user and the information on whether the user had a good or bad experience (we factor performance and functional problems into that). With that information we can:
- Identify the Landing Page of a Visitor: that's the first page that was requested by an individual Visitor. The Landing Page tells you how people get to your website and whether promotions or ads/banners work
- Identify the Bounce Rates and Bounce Pages: a Visitor bounces of your site if only one page was visited. We want to know which pages typically let people bounce off the page so we can optimize them. If you spend a lot of money on marketing campaigns but due to bad performance or a problem on these landing pages people bounce off its money that is wasted
- Identify click paths visitors take until they actually convert (buy a product) or where along this path they actually leave: Visitors usually need to click through a series of pages before they click on the "Confirm" button. If they do these Visitors convert. If they don't and leave your site somewhere along the way we want to know where and why they are leaving in order to optimize these pages and therefore increase conversion rates
- Identify how satisfied our end users are based by looking at response times and any functional problems along their execution path: Visitors that experience long page load times or run into any type of functional problem are more likely to be frustrated and leave the site before converting. Therefore we want to track this and identify which actions result in a bad user experience.
Landing Pages Impact Whether Users Make It Across the First Site Impression
Knowing the first action of every visit lets us identify our Landing Pages. Visitors that don't make it further than the landing page bounce off our site right away. This is the first problem we want to address as these people are never going to generate any business. The next screenshot shows how we want to analyze landing pages. It is interesting to see which landing pages we have, which are frequented more often, what's the bounce rate of these landing pages and is there any correlation to performance (e.g., higher bounce rate on pages that take longer).
Landing Page Report shows Bounce Rates, Access Count and compares Load Time to the industry standard
Bounce and Conversion Rates, User Satisfaction and Activity Are Important Metrics for Business Owners
Having every action of every visitor available, knowing whether visitors only visit the landing page and bounce off or whether they also make it to the checkout page allows us to calculate Bounce and Conversion Rates. Also looking at response times, request count and errors allows us to look at Visitor Satisfaction and usage. The following illustration shows all these metrics a Business Owner is interest in.
Dashboard for Business Owner to monitor those metrics that impact Business
Understanding Which Path Visitors Take Allows You to Improve Conversion and Lower Bounce Rates
The underlying data of all these metrics we just discussed are the individual actions of every visitor. Only with that information can we identify why certain Visitors convert and others don't, which will help us to improve Conversion Rate and lower the Bounce Rate. The following screenshot shows a detailed view of visits. Having all this data allows us to see which visitors actually bounce off of the site after just looking at their landing page, which users actually convert and what path users take when interacting with our web site.
Having every Visitor and all its Actions allows us to manage and optimize business transactions
Speed up User Complaint Resolution with All Actions Available
As already explained in the introduction section of this blog, one important use case is speeding up the resolution process of individual users. If you have a call center and one of our users complain about a problem, it is best to see what this particular user did to get to the explained error. Having all user actions available and knowing the actual user along the captured transactions allows us to look up only those transactions for that particular user and with that really seeing what happened.
When user Maria calls in we can look up all the actions from this user and see exactly what error occurred
Deep Technical Information for Fast Problem Resolution
Besides using technical context information as input for business transactions (e.g., username, search keywords, cash amount ...) we also need very deep technical information in scenarios where we need to troubleshoot problems. If visitors bounce of the page because of slow response time or because of an error we want to identify and fix this problem right away. In order to do that our engineers need access to the technical data captured for those users that ran into a particular problem. The following screenshot shows a user that experienced a problem on one of the pages which is great information for the Business Owner as he can proactively contact this user. The engineer can now go deeper and access the underlying captured technical information including transactional traces that show the encountered problem such as a failed Web Service Call, a long running database statement or an unhandled exception.
From Business Impact to Technical Problem Description: Technical context information helps to solve problems faster
To Sum Up: What We Need for Business Transaction Management
There are several key elements we need to perform the type of Business Transaction Management explained.
- All Visitors, All Actions, All the Time
- First Action is Landing Page
- Last Action is Bounce Page
- Helps us to understand the Click Path through the site, where people bounce off, which path people take that convert
- Knowing the Click Paths allows us to improve Conversion Rate and lower Bounce Rates
- Looking up the actions of a complaining users speeds up problem resolution
- Technical Context Information on a Distributed Transaction
- URLs alone are not enough as the Business Transaction itself is not always reflected in URL or URL Parameters
- Need to capture Business Context Information from HTTP Session, Method Arguments, Web Service Calls, SQL Statements, ...
- This information comes from multiple tiers that participate in a distributed transaction
- Technical context information speeds up problem resolution
Out-of-the-Box Business Transactions for Standard Applications
From an implementation perspective the question that always comes up is: Do I need to configure all my business transactions manually? The answer is: not all, but for most applications we have seen that it's necessary as business context information is somewhere buried along the technical transaction and is not necessarily part of the URL. Identifying Business Transactions based on the URL or Web Services that get called is of course a valid start and is something that most Business Transaction Management Solutions provide, and it actually works quite well for standard applications that use standard Web Frameworks. For more complex or customized applications it is a different story.
Business Transactions by URL
The easiest way to identify Business Transactions is by URL, assuming your application uses URLs that tell you something about the related business transactions. If your application uses URLs like the following list, you can easily map these URLs to Business Transactions:
- /home maps to "Home"
- /search maps to "Search"
- /user/cart maps to "Cart"
- /search?q=shoes still maps to "Search" but it would be great to actually see the Search by Keyword
The following screenshot shows the automatically identified Business Transactions based on URLs in dynaTrace. We automatically get the information if there are any errors on these transactions, what the response time is or how much time is spent in the database.
Business Transactions by Web Request URL works well for standard web applications meaningful URLs that can easily be mapped
Business Transactions by Service/Servlet
Another often-seen scenario is Business Transactions based on Servlet Names or Web Service calls that are executed by the technical transaction. This is most often very interesting as you want to know how your calls to the Search or CreditCard Web Service are doing. The name of the invoked web service method is often very descriptive and can therefore be used for automatic business transactions. Here is an example:
Business Transactions by Web Service Method name works well as method names are often very descriptive
Business Transactions by Page Titles
Better than URLs are very often Page Titles - that's the actual Title of the Pages users visit. The following shows us business transactions per page title including information on whether problems are to be found in the browser (Browser Errors), Client, Network or Server allowing a first quick root cause analysis.
Business Transaction by Page Title helps us to understand End User Experience
Customized Business Transactions for Non-standard Applications
A lot of applications our customers are using don't use standard web frameworks where URLs tell them everything they need to identify their business transactions. Here are some examples:
- Web 2.0 applications use a single service URL. The actual executed business transaction name can only be captured from a method argument of the dispatcher method on the backend
- Enforcing SLAs by account types (Free, Premium, Elite Members). The account type of a user doesn't come via the URL but is enumerated with an authentication call on the backend
- Search options are passed via URL using internal IDs. The "human readable" name of this option is queried from the database.
- The Booking Business Transaction is only valid if multiple conditions along the technical transaction are fulfilled, e.g, CreditCardCheck OK and Booking was forwarded to Delivery.
Let's have a look of some examples on how we use Customized Business Transactions in our own environment
Requests by User Type
On our Community Portal we have different User Types that access our pages. It includes employees, customers, partners, etc.; when a user is logged in we only get the actual user type from an authentication call that is made to the backend JIRA Authentication Service. We can capture the return value of the getGroup service call and use this to define a Business Transaction that splits all authenticated transactions by this User Type allowing me to see which types of users are actually consuming content on our Community Portal.
Using a method return value allows me to analyze activity per user type
Search Conversion Rates
We have a custom search feature on our community portal. In order to ensure that people find content based on their keywords I need to understand two things:
- What keywords are used and
- Which keywords result in a successful click to a search result and which ones don't - that helps me to optimize the search index.
The following screenshot shows the two Business Transactions I created. The first splits the search requests based on the keyword which is passed as HTTP POST Parameter on an AJAX call. The second looks at clicks to content pages and shows those that actually came from a previous search result. For that I use the referrer header (I know the user came from a search result page) and I use the last used search keyword (part of the user session).
Using HTTP POST Parameter, Referrer Header and HTTP Session Information to identify Search Keywords and the Conversion Rate to actual Result Clicks
These were just two examples on how we internally use Business Transactions. In the described use cases it's not possible to just look at a URL, a Servlet or Web Service Name to identify the actual Business Transaction. In these scenarios and scenarios that we always see with our customers it is required to capture information from within the technical transaction and then define these Business Transactions based on the captured context data.
A Practical Example: How PGAC uses Business Transactions
As a last example on Business Transaction Management in real life I want to highlight some of what was shown during last week's Webinar by Glen Taylor, Web Service Architect, from PGAC. PGAC runs TheGeneral.com and PGAC.com. Their web application doesn't have URLs that tells them whether the user is currently asking for an insurance quote or whether they are in the process of verifying their credit card. The information about the actual business transaction comes from the Instance Class of an object passed to their ProcessFactory. dynaTrace captures the object passed as argument and its actual class. With that information they are able to split their technical transactions into Business Transactions.
PGAC uses the instance name of a class to define their Business Transactions
If you are interested in their full story check out the recorded webinar. It will be available for download on the dynaTrace recorded webinar page.
More on Business Transaction Management
If you are already a dynaTrace user you should check out the material we have on our dynaTrace Community Portal: Business Transaction in Core Concepts and Business Transactions in Production
Chef and Canonical announced a partnership to integrate and distribute Chef with Ubuntu. Canonical is integrating the Chef automation platform with Canonical's Machine-As-A-Service (MAAS), enabling users to automate the provisioning, configuration and deployment of bare metal compute resources in the data center. Canonical is packaging Chef 12 server in upcoming distributions of its Ubuntu open source operating system and will provide commercial support for Chef within its user base.
Apr. 18, 2015 01:45 AM EDT Reads: 1,692
A few weeks ago, SmartBear hosted API Craft Boston with the folks from Akana, Ian Goldsmith and Laura Heritage, to talk about microservices. It was an extremely informative presentation of where microservices came from, what it solves, and considerations around how it might fit into an organizational API strategy. It’s one thing to read everyone else’s opinions on blogs, twitter, etc. It’s great to go to workshops and conferences, but this was so intelligently presented (and for a meetup too)...
Apr. 17, 2015 11:30 PM EDT Reads: 486
While DevOps most critically and famously fosters collaboration, communication, and integration through cultural change, culture is more of an output than an input. In order to actively drive cultural evolution, organizations must make substantial organizational and process changes, and adopt new technologies, to encourage a DevOps culture. Moderated by Andi Mann, panelists will discuss how to balance these three pillars of DevOps, where to focus attention (and resources), where organizations m...
Apr. 17, 2015 05:00 PM EDT Reads: 1,596
Today, the demand for new applications is growing at an unprecedented rate throughout lines of business and across industries. Customer expectations for mobile and e-commerce capabilities are transforming software development speed and quality into a competitive differentiator for even the most unlikely businesses. For existing software development shops, the proliferation of platforms, increasing need for total global uptime, and accelerating pace of industry disruption by fast-paced startups h...
Apr. 17, 2015 04:45 PM EDT Reads: 1,063
of cloud, colocation, managed services and disaster recovery solutions, will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. TierPoint, LLC, is a leading national provider of information technology and data center services, including cloud, colocation, disaster recovery and managed IT services, with corporate headquarters in St. Louis, MO. TierPoint was formed through the strategic combination of some of t...
Apr. 17, 2015 04:00 PM EDT Reads: 1,265
How do you securely enable access to your applications in AWS without exposing any attack surfaces? The answer is usually very complicated because application environments morph over time in response to growing requirements from your employee base, your partners and your customers. In his session at 16th Cloud Expo, Haseeb Budhani, CEO and Co-founder of Soha, will share five common approaches that DevOps teams follow to secure access to applications deployed in AWS, Azure, etc., and the frict...
Apr. 17, 2015 04:00 PM EDT Reads: 1,320
SYS-CON Events announced today that Soha will exhibit at SYS-CON's DevOps Summit New York, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. Soha delivers enterprise-grade application security, on any device, as agile as the cloud. This turnkey, cloud-based service enables customers to solve secure application access and delivery challenges that traditional or virtualized network solutions cannot solve because they are too expensive, inflexible and operational...
Apr. 17, 2015 03:45 PM EDT Reads: 1,385
SYS-CON Events announced today that Vicom Computer Services, Inc., a provider of technology and service solutions, will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. They are located at booth #427. Vicom Computer Services, Inc. is a progressive leader in the technology industry for over 30 years. Headquartered in the NY Metropolitan area. Vicom provides products and services based on today’s requirements...
Apr. 17, 2015 02:00 PM EDT Reads: 1,293
SYS-CON Events announced today that Ciqada will exhibit at SYS-CON's @ThingsExpo, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. Ciqada™ makes it easy to connect your products to the Internet. By integrating key components - hardware, servers, dashboards, and mobile apps - into an easy-to-use, configurable system, your products can quickly and securely join the internet of things. With remote monitoring, control, and alert messaging capability, you will mee...
Apr. 17, 2015 01:00 PM EDT Reads: 1,448
What exactly is a cognitive application? In her session at 16th Cloud Expo, Ashley Hathaway, Product Manager at IBM Watson, will look at the services being offered by the IBM Watson Developer Cloud and what that means for developers and Big Data. She'll explore how IBM Watson and its partnerships will continue to grow and help define what it means to be a cognitive service, as well as take a look at the offerings on Bluemix. She will also check out how Watson and the Alchemy API team up to off...
Apr. 17, 2015 12:00 PM EDT Reads: 1,372
Thought experiment: let’s say your app gets a message from somewhere, perhaps from another app, but you don’t know from where. The message contains the number 47 but no other information. What should your app do with the message? The answer: nothing. There’s no way for your app to make any sense out of a single datum with no context, no additional information or metadata about the datum itself. Now, let’s scale up this thought experiment to a data lake. There are a few common definitions o...
Apr. 17, 2015 12:00 PM EDT Reads: 4,599
The 17th International Cloud Expo has announced that its Call for Papers is open. 17th International Cloud Expo, to be held November 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA, brings together Cloud Computing, APM, APIs, Microservices, Security, Big Data, Internet of Things, DevOps and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding bu...
Apr. 17, 2015 12:00 PM EDT Reads: 2,039
Change becomes the central principle of today’s enterprises, and thus business agility becomes the most important characteristic our organizations must exhibit. Agile Architecture lays out a best practice approach for achieving this agility – and thus drives and coordinates the other revolutions, as both digital and DevOps are about being able to deal with change better as well.
Apr. 17, 2015 11:45 AM EDT Reads: 1,220
The concept and subsequent adoption of 'Containerization'' is growing at a rapid speed with the support of almost every other major player in the industry. This concept is much more efficient than the Virtualization which has been a major option for Infrastructure optimization in the past decade. The following factors distinguish a Container from a Virtual Machine. Containers contain Only the Application Specific libraries and binaries. They do not include a guest operating system. Rather ...
Apr. 17, 2015 11:00 AM EDT Reads: 1,199
There's a real buzz about microservices and containers in the application development and DevOps communities, and of course these are topics we've been talking about a great deal lately here at XebiaLabs too. Microservices and containers offer many attractive features, not least the potential for enhanced flexibility, and a robust architecture based on best-fit services. What we at XebiaLabs are really interested in is how organizations can effectively deliver microservices-based apps to bett...
Apr. 17, 2015 10:45 AM EDT Reads: 1,870
Cloud Expo New York is happening from June 9 - 11. This event brings together the worlds of Cloud Computing, DevOps, IoT, WebRTC, Big Data and SDDC. We hope to see you there-members of the Blue Box team will exhibit in booth 218 next to the DevOps area. Plus, our Chief Product Officer, Hernan Alvarez, will present his talk "The Cloud Has a Down-and-Dirty Lining" as part of the Operations track in the DevOps Summit portion of the event on June 9 at 11 am. Learn more about his session her...
Apr. 17, 2015 10:00 AM EDT Reads: 1,162
SYS-CON Events announced today that Column Technologies, a global technology solutions company, will exhibit at SYS-CON's DevOps Summit 2015 New York, which will take place June 9-11, 2015, at the Javits Center in New York City, NY. Established in 1998, Column Technologies is a leader in application performance and infrastructure management for commercial and federal markets. The company is headquartered in the United States, with a diverse and talented team of more than 350 employees around th...
Apr. 17, 2015 10:00 AM EDT Reads: 1,455
Financial services organizations were among the earliest enterprise adopters of cloud computing. The ability to leverage massive compute, storage and networking resources via RESTful APIs and automated tools like Chef and Puppet made it possible for their high-horsepower IT users to develop a whole new array of applications. Companies like Wells Fargo, Fidelity and BBVA are visible, vocal and engaged supporters of the OpenStack community, running production clouds for applications ranging from d...
Apr. 17, 2015 10:00 AM EDT Reads: 976
As we recently previewed (read more about our London PoP in Jesse's post), Blue Box is opening a new Data Center in London, but hadn't announced the provider. Today we're excited to partner with TelecityGroup, whom we've selected as our data center partner in London. We chose their Powergate location, which is one of the U.K.'s most advanced, flexible and energy efficient carrier-neutral data centres. Why does that matter to you? Well, when customers choose Blue Box, they're trusting us with ...
Apr. 17, 2015 10:00 AM EDT Reads: 1,027
The 5th International DevOps Summit, co-located with 17th International Cloud Expo – being held November 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA – announces that its Call for Papers is open. Born out of proven success in agile development, cloud computing, and process automation, DevOps is a macro trend you cannot afford to miss. From showcase success stories from early adopters and web-scale businesses, DevOps is expanding to organizations of all sizes, including the...
Apr. 17, 2015 09:15 AM EDT Reads: 1,972