What are Composite
applications?
An application which can combine
information from multiple sources or applications is known as composite
application. Composite application can take data, logic, and processes from
existing application and combine them to create a new application.
Here, the composite application
is utilizing a process from Application 1 and data from 2 other applications
(Application 2 and Application 3). Composite application will combine all of these
to produce information useful to the user on the user interface.
What is the use of Composite
applications?
Introduction of new technologies, designs, and monitoring
requirements are forcing people to work with different departments in a dynamic
environment. This need to work across departments has introduced the
requirement of tools which can re-use data, logic, process, and rules from
applications used by different departments and this is what composite
applications help achieve. Another aspect for composite application is you can
develop a new application (used for business) combining a couple of individual
applications, instead of building one from scratch.
An example of Composite
application:
Take the case of a tech support center. When a customer calls
the helpdesk number, there are multiple tools to provide information to the
helpdesk agents:
-
Reason
the customer called in - This information is usually displayed on the IP phone
because the customer would have chosen his options from the IVR before reaching
the technician.
-
Customer
details and details of purchased software, plus add-on information obtained
from the customer portal.
-
Troubleshooting
steps or a solution for the customer issue usually made available from an
internal web server.
-
A
help desk tool to raise a ticket, check history of customer tickets, and update
the current issue and solution.
Composite applications can bring all this information
together and avoid the complexity of opening many tools and web pages. This
helps to reduce the work load of the support technician and reduce the time
spent on support calls.
What are the advantages of composite
applications?
-
Can
seamlessly interact with different applications, processes, and present all this
information in a single user interface.
-
Live
data access from all databases.
-
The need
of redundant copies of data is eliminated. That is, there's no need for data to
be copied from the database of the standalone application to the composite
application's server.
What are the disadvantages of composite applications?
A disadvantage associated with composite applications can be
performance. This is because data needs
to be queried from various application databases and presented to the user.
However, this can be overcome by having the application users decide on when to
retrieve data.
Should you monitor composite
applications?
Yes, of course. You should
consider monitoring composite
applications because composite applications can have performance issues.
Specifically, when interacting with other individual applications. Just as in
the case of any individual application, any downtime to composite applications
can affect business continuity.
What are the parameters to be monitored and will traditional application monitoring tools work with composite applications?
You should monitor:
-
Composite
application server
-
Individual
applications (which are interacting with a composite application) and their
database server.
-
Databases
of these individual applications
-
The correlation
of all transactions running between composite applications and individual
applications.
Server metrics to be monitored should include CPU
utilization, memory utilization, Disk Read/Write operations, and other health
factors (such as critical alerts, storage space, event logs etc.). Network
latency and availability of the server should be monitored along with the above
mentioned metrics. When it comes to database monitoring, you
should monitor expensive queries running on the database, SQL event logs
details, results of cache/memory usage and so on.
However, monitoring processes
between composite applications and individual applications is difficult
considering the complexity of composite
applications.
So, what is the best way to monitor composite applications?
You can rely on Application
Response Measurement (ARM). ARM is an open standard for diagnosing performance pertaining
to complex enterprise applications. ARM
has an API, which can be programed to provide transaction information, such as
time taken to complete, numbers of transactions, status (good, failed,
aborted), start/stop time stamp etc. But even monitoring with ARM is not
complete. ARM has to be called from the composite application itself and for
this the application should have ARM implemented, which in turn is dependent on
the application vendor.
Another alternative is to use a
monitoring tool like Solarwinds SAM, which
has an API. This tool can help execute queries (similar query which a composite
application will execute) from the composite application server directly, using
the same API method that the composite application uses. This helps correlate the
performance (availability and latency) and also validate the content returned of
the composite application, since the queries executed from API are running in
the same environment.
Complexity of application
monitoring has increased with the introduction of composite applications. However,
Solarwinds SAM is a great method and user
friendly software that's great for monitoring applications.
About the Author
Praveen is a Head Geek at SolarWinds, a global IT
management software provider based in Austin, Texas. He
has seven years of IT industry experience in roles such as Support Engineer,
Product Trainer and Technical Consultant, and his expertise lies in
technologies including NetFlow, Flexible NetFlow, Cisco NBAR, Cisco IPSLA, WMI
and SNMP. Praveen gives strategic guidance for end users on applications,
networks and performance monitoring tools.