| By Victor Mushkatin | Article Rating: |
|
| December 30, 2008 07:00 AM EST | Reads: |
2,782 |
In addition, the model helps determine what information has to be collected to correct the degradation or failure. As this information is specific to each individual component and service, it's essential to ensuring optimal performance. Lower TCO can be achieved through increased uptime and improved data collection when applications behave unexpectedly.
Considerations for Service-Oriented Architectures
The health model for applications has been evolving, and so too must design practices. Considering the distributed nature of business, modern design principles favor a scenario that allows for a distinct separation of functions into discrete and reusable components that can interact remotely with each other, and with remote and disparate systems and services.
Web service technology is independent of platform, operating system, and language, and allows application components to communicate over any network, including the Internet, using standard ports and protocols such as HTTP and HTTPS. This service-oriented architecture (SOA) approach to application design leverages the advantages of Web services to enable communication across all tiers of an application.
Greater value can be realized in terms of increased application flexibility and interoperability, along with easier integration with remote services and external business partners, by enabling architects and developers to disconnect certain tiers of an application. Despite this impact on cost of ownership, SOA does present some challenges that must be considered. These challenges include the location, segregation, and orchestration of services, along with the implementation of a suitable system for monitoring the performance of these components to adhere to service-level agreements (SLAs) and operational requirements.
Plan Your Approach to Application Monitoring
So far we've addressed business rules, health models, and Web service design principles. All of these strategies have the potential to lower the TCO of applications. However, their successful implementation is dependent on reliable application monitoring to ensure business rules and application components are yielding the desired results.
Up until now, monitoring and capturing diagnostic information about an application's behavior has been a development exercise of writing information to a log file or publishing it to the system event log. The development team, in this case, is responsible for deciding what information to collect. In this scenario, organizations rely on end users or QA staff for problem detection and notification, and log files provide the diagnostics. Lowering the TCO for an application requires moving beyond this method of retroactive monitoring to a proactive application management approach. To accomplish this, it's vital to understand how collected information is interpreted throughout the problem resolution process and how to standardize the presentation of that diagnostic information across all applications.
The health model provides a template for how an application is expected to behave. This model plays an integral role in the monitoring approach since it should also define the capture of information that's meaningful to the problem resolution process and provide corresponding corrective actions.
Consider a situation in which an application requires access to a file on the file server. What happens if the IT department changes a security policy and causes an access denied error? The health model rules will note a "failed" application state and automatically notify the appropriate team in the IT department. At the same time, supporting diagnostic information is collected to indicate the type of problem, specific information about the particular instance of the problem, and the steps required to resolve the error. The diagnostic information collected would likely include the specific file being accessed, the security error, and the precise permissions required to restore normal application behavior and performance.
This example illustrates how the health model enables efficient management of well-known potential application problems. This approach, however, can be costly from both a design and development perspective because it does not necessarily accommodate unanticipated problems. A more cost-effective and proactive approach is possible by marrying a health model with an always-on application monitoring solution that provides 24/7 detection and diagnosis of both expected and unexpected application problems.
From the perspective of manageability, the final architecture should allow developers to expose instrumentation - as defined by the health model - that captures errors and generates information that can guide operations staff to the source of the error. Where an application uses services that are not locally controlled or installed, such as a Web Service exposed by a supplier or delivery transport provider, local routines that access these services should include facilities for configuration and monitoring that will provide information to help identify availability and performance of these remote services.
Organizations can considerably reduce the amount of code (instrumentation) that developers must write while still providing full state change and performance monitoring capabilities by implementing a health model and a carefully planned architecture.
Applying Your Monitoring Approach to the Whole System
Now that an application monitoring approach has been evaluated, more extensive reduction in total application costs can be achieved by leveraging that approach to implement system-wide monitoring.
IT operators typically require a comprehensive view of the performance and issues within an entire system and infrastructure to diagnose and resolve problems accurately. For example, a business application is likely to depend on at least four separate areas of functionality: the data tier, application tier, interface tier, and utility services such as Active Directory, DNS, and networking.
Suppose our health model indicates that it's in a "failed" state in a business application. In addition, suppose this failure is actually due to a problem with a database server that may become corrupt or run out of sufficient memory. Or, consider an application component that relies on a Web Service exposed by another organization for its source data. If that Web Service fails, the application state will show "failed." However, if the IT operator can't see the performance data and error messages relating to the database server, or analyze the time taken for calls to the Web Service, it will be difficult to diagnose the problem accurately. Therefore the organization will end up spending more reserves than necessary to determine the root of the problem and resolve it.
Published December 30, 2008 Reads 2,782
Copyright © 2008 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Victor Mushkatin
Victor Mushkatin is CTO of AVIcode. An expert software architect and adept business manager and leader, he has developed a variety of software components, communications libraries, and XML schemas for Internet business portals to include integration with a variety of financial systems, government systems, and communication networks. As business manager for AVIcode’s predecessor company, he was directly responsible for P and L and overall leadership of the company. It was under his management that the foundations of the current company and Intercept Studio itself were built.
- IBM Puts Systems Chief on Leave of Absence
- Amazon Web Services Database in the Cloud
- SpringSource Moving to Spring 3.0
- Virtualization Expo Call for Papers Deadline December 15
- Un-Clouding Federal Security Compliance
- Move Over BI, Here Comes PI - Performance Intelligence
- Qt DevDays 2009 - Munich
- Developing APIs for the Cloud
- Using Ext JS, Servlets, JSON, MySQL and Tomcat on Fedora
- Canonical Offers Free Cloudware
- New-Generation Virtualization Technologies with Ultra Low-Cost Endpoints
- The Planet Executive to Speak at Cloud Computing Conference
- Oracle-Sun: IBM Reportedly Behind Delay
- The Case for Single-Purpose Services
- IBM Puts Systems Chief on Leave of Absence
- Cloud BI & Amazon VPC
- Cloud-Oriented Switch Start-up Valued at $230M
- The Curious Case of Build Release Management eBook
- Amazon Web Services Database in the Cloud
- Tips for Efficient PaaS Application Design
- Reporting Solutions Using Crystal Reports for Eclipse
- SpringSource Moving to Spring 3.0
- Virtualization Expo Call for Papers Deadline December 15
- Un-Clouding Federal Security Compliance
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- The i-Technology Right Stuff
- Creating Web Applications with the Eclipse Web Tools Project
- Eclipse Special: Remote Debugging Tomcat & JBoss Apps with Eclipse
- The Next Programming Models, RIAs and Composite Applications
- Where Are RIA Technologies Headed in 2008?
- How to Bring Eclipse 3.1, J2SE 5.0, and Tomcat 5.0 Together
- SYS-CON Webcast: Eclipse IDE for Students, Useful Eclipse Tips & Tricks
- Eclipse: The Story of Web Tools Platform 0.7
- "Eclipse 3.0 is a Great Leap Forward," Says JDJ's Dudney
- Developing an Eclipse BIRT Report Item Extension
- The Top 250 Players in the Cloud Computing Ecosystem



























