Website and Network Stress MonitoringWritten by Vadim Mazo and David Leonhardt
In today’s world, organizations are fast accepting web and related applications as part of their overall business strategies. They understand that Internet provides them with potential to target a very focused set of customers spread across a very diverse geography.
For a successful Internet presence, it is important that web server and web applications are reliable, scalable and always available, irrespective of traffic volumes to site.
To achieve this, you must test all your hardware and software using tools to check your website, usually called web stress tools. These tools should ideally be used even before site is on World Wide Web. They can provide a reasonably good estimate about performance of your website and a company can identify issues before they arise.
Such issues might include slow response times while opening website, a limited number of users able to simultaneously browse website, or a cap on number of requests that can be handled by a processing application. Based on results, a webmaster can identify bottlenecks and take corrective actions before they result in lost sales.
What does website stress testing do?
Web stress testing provides performance reports for varying elements. For example, users might be complaining that your shopping site is taking ages to load and most search results are showing errors message. Using a web stress tool, you can check performance of your web server. To your surprise, CPU utilization on Server may be just 20%. But if you are also monitoring database application, you might find that it is already running at 100% and is most likely reason for poor performance.
Stress tools can be deployed as software solutions where you can monitor key components of your servers such as CPU, memory and hard disk utilizations. They are built with user-defined alerts that can be triggered if a particular parameter crosses a threshold set by user. As an example, you can configure an alert that must be generated whenever CPU utilization crosses 80% mark. Although this is helpful in identifying system bottlenecks, results are limited to web servers that are connected to your internal network.
Web Services InteroperabilityWritten by Senthil Krishnamurthy from Aspire System (India) Pvt. Ltd.
Interoperability is one of main promises of Web services. Web services are designed to be independent of underlying operating system and programming language. In this article we will address some basic web services interoperability issues that are useful for developers. We will focus on two most popular platforms - Java and Microsoft C#.
Introduction More and more we're finding that WSDL lies at heart of Web services interoperability. WSDL is description language for Web services. Usually a WSDL document is automatically generated by Web services framework tools (e.g., Axis, WASP WSDLCompiler) from code written in a particular programming language. Developers can use WSDL document to generate client-side stubs or proxies, which provide convenient access to Web services. Thus key to enabling seamless Web services interoperability is ability of one Web services framework to consume WSDL documents generated by other frameworks. The WSDL interoperability effort is just taking off. You can see further details at http://soap.systinet.net/interop/wsdl/index.html. How to not get trapped The following subchapters give you some basic tips on how to write interoperable Web services using today's Web services frameworks. These tips may significantly ease your life as well as lives of other developers who will use your Web services. Hopefully some of those tips will be outdated soon. Keep your types simple - avoid advanced XML Schema constructs The XML Schema standard is very complex and difficult to implement. Moreover, XML Schema processing is quite time consuming, so many frameworks sacrifice full XML Schema support for performance. Some advanced XML Schema constructs (e.g., choice) are quite hard to express in a programming language, and few Web services frameworks support them. So key success factor in Web services interoperability is to use basic data types, such as primitive data types, arrays, and structures. As a best practice, decompose complex types in your interfaces into simple and clean interfaces with basic data types. Also avoid using specific techniques (e.g. INOUT parameter passing) that aren't widely supported. Sample Architecture Let we see architecture of my sample application which uses web services along with messaging concepts. Here 3 web services are used. Two web services, Place Order and Get Order are developed and deployed in Java environment and another one, Send Message is in C# environment.
The Ordering System calls Place Order web service to place an item to order. The Place Order web service stores that item and notifies Java Expeditor Client through JMS. After intimation message has come from JMS Java Expeditor Client calls Get Order web service to retrieve ordered items and details. The same Place Order web service calls another web service, Send Message to send message to MSMQ, then Notification message is sent to C# Expeditor Client from MSMQ. After intimation message has come from MSMQ, C# Expeditor Client calls Get Order web service to retrieve ordered items and details. Here functionality of Java Expeditor and C# Expeditor Client are same except that they are developed in different platform to illustrate interoperability of web services. So here its proved that web service Get Order, which is developed and deployed in Java environment is accessed from C# Expeditor client and web service Send Message, which is developed and deployed in C# environment is accessed from Place Order web service of Java environment.
Accessing Java Web Service from C# To invoke Get Order web service in C# Expeditor Client application, we are going to Add Web Reference to Get Order web service. The steps to be followed to do this are, 1. In Project menu, click Add Web Reference…