Java EE and .NET Interoperability: Integration Strategies, Patterns, and Best Practices

Have you ever heard of the term "CNN moment?" Those in the software business may have heard of it, while others may have experienced it. It is often caused by a service interruption that became worldwide news. The always reachable Google site went down for 15 minutes on May 7, 2005, from 6:45 to 7pm EST. Not only did this become world news; what's worse is that some online users were rationalizing it as the beginning of the end of the world. I wouldn't consider Google a mission-critical service, and yet it created a panic for many people.

Monitoring the Quality of Service across a large-scale, distributed, heterogeneous enterprise landscape is a difficult task, as software and hardware components are prone to errors. Nevertheless, establishing this infrastructure is critical to reduce and possibly prevent system downtime. Imagine troubleshooting a glitch on a production system in which a problem is not easily reproducible. Sounds familiar? What if the service is made up of components from Java EE, .NET, and legacy applications commonly deployed in various businesses or is composed of a set of federated services distributed over the Internet? Hours of service interruptions often translate into millions of dollars in lost revenue. Without a management infrastructure in place, the troubleshooting process can consume days or weeks before the problem is identified and fixed, degrading overall service levels.

Deploying, configuring, monitoring, detecting, notifying, and in some cases self-healing a problem constitutes system management. The ultimate goal of system management is to ensure that the quality of service and operating requirements of all business applications are satisfied. In the ISO Network Management model that is referenced throughout this chapter, the key elements of this complex task are fault management, configuration management, accounting, performance management, and security management. Achieving these goals in a mixed Java EE .NET platform environment presents many management challenges that are discussed in this chapter. An implementation of the Simple Network Management Protocol (SNMP), designed for network management, is available for Windows and various UNIX platforms and can be leveraged to monitor platforms hosting Java EE and .NET applications. SNMP is often used as the lowest common denominator to monitor nodes on an IP network and to provide detailed networking statistics. SNMP, however, produces a large amount of information that has to be filtered. Telemetry is another way of addressing management and allows remote measurements to be transmitted to a centralized system for analysis. See [NetworkMgmtOverview] and [NetworkMgmtBasics] for overview of network management.

Категории