Welcome!

Linux Containers Authors: Liz McMillan, Elizabeth White, Yeshim Deniz, Zakia Bouachraoui, Pat Romanski

Related Topics: Linux Containers

Linux Containers: Article

Web Services and Linux

A winning combination

Web services will be the leading programming model used for at least two-thirds of new applications by 2005, according to a recent Gartner report. Whether used in small integration tasks or in larger projects to transform business processes, Web services have proved to deliver serious benefits. Companies such as Amazon.com and Nordstrom have already deployed useful Web services.

Many software development vendors and open source organizations now provide tools for Web services development and deployment. You can easily begin developing Web services by taking advantage of these tools. But does the thought of developing Web services on Linux scare you? In particular, you may wonder whether Linux is ready to move into the Web services space. Let this article put your fears to rest with a discussion of:

  • The benefits gained by using Web services
  • Best practices to follow during each phase of Web services development
  • The tools available for developing Web services on Linux

    Linux
    In today's economy, many companies are looking for ways to cut costs while still offering an exceptional customer experience by using the Linux operating system. Although it has been around for almost 10 years, Linux only started to really get some serious consideration in the past few years. Looking beyond its unbeatable license agreement, some speculate that Linux's recent surge in popularity stems from its attractiveness as a great alternative method for developing different types of applications – including Web services.

    As you start preparing your Web services development environment, carefully consider your installation needs before choosing a Linux distribution. Each distribution provides different package formats (e.g., .zip, .deb, .jar, and .tar files), and not every software package is readily available for every Linux distribution. In some cases only older versions of a given package might be available. The package type you choose can impact your ease of installation and configuration.

    Among the many distributions of Linux, the top three are:

  • Red Hat: Closes the gap between Unix and Windows. This is a good choice if you are a novice Linux developer.
  • SuSE: Provides a desktop-like operating system that you can also use as a highpowered server. This is a good choice if you are a current Windows user.
  • Debian: The most vendor-neutral Linux distribution, managed by a community of developers rather than a company. This is a good choice if you already have some experience; Debian is typically the distribution used by well-seasoned Linux developers.

    Web Services
    The next time someone asks you what a Web service is, you can explain that it is simply a self-contained software component that sends and receives XML data across the Internet. Web services typically use two XML standards: Simple Object Access Protocol (SOAP) to define the XML message, and Web Services Description Language (WSDL) to describe the Web service interface.

    In a simple Web services scenario, an application sends a request to a service at a given URL using SOAP over HTTP. The service receives the request, processes it, and returns a response. Take the example of a weather forecast service, shown in Figure 1. The weather forecast service requests the current weather of a specified location, and the Web service response returns the forecast. This is the simplest form of a Web service because the response is sent almost immediately, and the request and response are both parts of the same method call.

     

    Now let's look at a more realistic scenario. ABC Company contracts with a software consulting firm to develop an order entry application for them. The order entry application needs to communicate with a parts information system on a mainframe to access information when orders are entered. In order to perform the integration with the mainframe, ABC Company has its developers create a software component that exposes data on the mainframe as a Web service. The software consulting firm then creates the order entry application to access the mainframe via this Web service.

    In this scenario, the Web service provides the following benefits:

  • "Interface points" between the two systems are defined as a series of XMLbased requests and responses. This simplifies the integration effort and saves time and money.
  • The mainframe system is to be replaced in 12 months. As long as its replacement can expose the same parts information as a Web service, then this replacement will require no rewrites to the front-end system.
  • ABC Company has another project on the drawing board to make parts information available to certain channel partners. If the channel partner application can access the parts information using the same Web service as the initial order entry application, then no new code needs to be written to support the channel partner's application.

    Starting to see some of the possibilities that Web services offer? If any of the follow- ing situations sound familiar, consider putting Web services into action in your own organization:

  • Your organization is constantly changing.
  • You need a flexible infrastructure that integrates your customers, suppliers, and partners.
  • Your organization needs the ability to expose your services programmatically over the Web.
  • You face obstacles in true business-tobusiness collaboration because of problems integrating outside of the firewall.
  • Your organization lacks a standard integration method among the separate infrastructures maintained by each division within your organization.

    Web Services on Linux
    Because you can now choose from numerous Linux-compatible tools to help you, developing Web services on Linux should no longer sound so scary (see Figure 2). Ready to get started? To get your Web services designed and running, you need to choose:

  • A Web services platform
  • Monitoring utilities for your Web service
  • Testing tools for your Web service
  • Management and diagnostic tools once your Web service is in production

     

    Selecting a Web Services Platform
    Remember that Web services are simply components that send and receive XML data across the Internet. Encoding and decoding data between the SOAP format and the underlying business objects is what makes Web services development difficult. While a SOAP processing engine or a SOAP server can be written from scratch, it is better to invest in a Web services platform to manage the Web services. Essentially, a SOAP server is an XML processor and an HTTP server (see Figure 3).

     

    Before you select your Web services platform, become familiar with the requirements for a Web services platform. These include:

  • SOAP support: The platform must provide a SOAP server or service that manages the sending, routing, and receiving of SOAP messages. This management usually involves receiving the SOAP message and mapping it to some backend application. Because SOAP is XML, it is vendor-, platform-, and languageindependent. SOAP also uses HTTP, making it firewall friendly.
  • Runtime environment: The runtime is the overall platform or container that the SOAP components execute in. The runtime environment is responsible for managing the Web services running on the platform. This responsibility might include configuration management, life cycle management, and recovery.

    Before we look at specific Web services platforms, you should also know that Web services development requires three basic steps. These are:

    1. Create the Web services interface
    2. Package and deploy the Web service
    3. Invoke the Web service
    We will not examine these steps in detail here; however, you can execute these steps on any of several Linux-compatible platforms. Each platform consists of tools that take existing software components and easily expose them as Web services. You can also use other tools. Some simplify the SOAP message construction process; others automatically generate SOAP proxy code to simplify the development of a client application that must access a Web service.

    Here are two popular Web services platforms:

  • Apache Axis: An open source toolkit that provides you with utilities to easily develop Web services. Apache Axis is a robust toolkit, but keep in mind that you have to do a lot of the Web services development manually. However, you can create Jakarta Ant scripts to accomplish the tasks required. Apache Axis depends on the Apache Tomcat installation.
  • BEA WebLogic Workshop: Provides the features necessary to create, package, deploy, and invoke your Web service – all from within the WebLogic platform. One of its greatest strengths is its easy-to-use graphical user interface. With this interface, you can build loosely coupled, asynchronous Web services quickly. It is important to note that BEA WebLogic Workshop is tightly integrated with the BEA WebLogic Application Server. In addition, BEA provides a plug-in to Borland's JBuilder so that you can build, test, and deploy Java Web services that leverage the Workshop Application Framework directly from JBuilder's development environment.

    Monitoring the Service
    Both Axis and BEA incorporate tools to help you monitor your Web services. Axis provides the tcpmon utility class that listens for connections on a given port on the local host and forwards incoming messages to another port on another server. By inserting itself between the two ports, tcpmon shows you all incoming and outgoing SOAP messages. Similarly, WebLogic Workshop provides you with a view of the SOAP messages. The two approaches differ in that the Apache Axis utility makes you configure tcpmon, while WebLogic Workshop embeds this capability within its user interface.

    Testing the Service
    When testing a Web service, you must have well-designed tests – especially if the service will be distributed and leveraged by other divisions, customers, suppliers, and partners. And testing a Web service presents a particular challenge because it lacks a user interface. Unlike Web-based applications that contain a presentation layer, Web services typically expose an XML request/response interface. Fortunately, you can choose from among several automated testing tools to help simplify your Web services testing process on Linux.

    A couple of the tools that we evaluated and recommend include:

  • PushToTest TestMaker: Allows you to test the functionality, scalability, and performance of a Web service. You can test the functionality of a Web service by developing JPython scripts in a graphical environment. For example, you can determine that the right SOAP message is being sent to the Web service. TestMaker also comes with the Test Object Oriented Library (TOOL), a library developed by PushToTest to simplify the creation of Web services tests. TOOL provides protocol handlers, data source handlers, and utility objects to handle communication with a Web service by using HTTP, HTTPS, SOAP, or XML-RPC.
  • Altova XMLSPY 5: Offers functionality such as support for advanced SOAP, WSDL, and Web services testing and debugging. The XMLSPY 5 SOAP Debugger acts as a Web services proxy between a Web services client and server. It lets you inspect WSDL files, singlestep through Web services transactions, inspect every request and response XML document, and set breakpoints on SOAP functions either on the request or the response. You can also define conditional breakpoints that trigger if a certain request or response contains selected data that is specified via an XPath query.

    Managing the Service
    In order to get the most out of Web services, you must be able to actively manage and control the new capabilities that come along with them. HP OpenView offers application management for most software running today. The new Web Services Management Engine (WSME) is already available for capturing Web services transactions, actively managing Web services over WSDL/SOAP, and enabling provisioning, user profile registration, realtime SLA enforcement, access control, subscription management and metering for prepaid billing. WSME can be deployed either as an endpoint on a Web service platform, or as a control point in front of a farm of Web service platforms. WSME can also natively manage J2EE or .NET Web services deployed behind or beyond the firewall.

    Looking forward, new manageability needs will continue to grow, as will the need for different operating environments such as Linux, hp-ux, and Windows to coexist in the same Internet infrastructure. As a result, organizations will demand tools that provide increasingly tight, integrated management for these components in order to achieve optimum costs and increase service levels at the same time.

    See Table 1 for a list of the tools available for Web services development along with the versions of Linux that each supports.

     

    Conclusion
    Web services offer solutions to deal with the changes, flexibility needs, and firewall issues that your organization faces. Building your Web services on Linux makes sense; now you have an overview of a wide variety of tools to help develop, monitor, and test your Web services. Put the best practices outlined in this paper to use and see how Web services can help your organization design sound integration tasks and transform its business processes.

  • More Stories By Claire Rogers

    Claire Rogers is a senior software consultant in HP's Developer Resources Organization, providing software consulting to customers on J2EE application management.

    Comments (3) View Comments

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


    Most Recent Comments
    Peter 11/04/03 12:08:39 PM EST

    Pretty good article, but I wanted to correct one piece of misinformation. The article states that Axis requires the Tomcat servlet engine. This is not true. Axis will run with any servlet engine. We happen to run Axis with a JBoss/Jetty distribution.

    John Bosman 11/03/03 09:24:51 AM EST

    I was impressed by this article, I heared things like SOAP before, but now I can put it into perspective.
    Thanks!

    Ned 11/02/03 06:33:05 PM EST

    Informative and well-written. Thanks so much!

    IoT & Smart Cities Stories
    René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a m...
    Early Bird Registration Discount Expires on August 31, 2018 Conference Registration Link ▸ HERE. Pick from all 200 sessions in all 10 tracks, plus 22 Keynotes & General Sessions! Lunch is served two days. EXPIRES AUGUST 31, 2018. Ticket prices: ($1,295-Aug 31) ($1,495-Oct 31) ($1,995-Nov 12) ($2,500-Walk-in)
    Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle management company where he learned about Bitcoin and eventually Ethereal. Andrew's role at ConsenSys Enterprise is a mul...
    Nicolas Fierro is CEO of MIMIR Blockchain Solutions. He is a programmer, technologist, and operations dev who has worked with Ethereum and blockchain since 2014. His knowledge in blockchain dates to when he performed dev ops services to the Ethereum Foundation as one the privileged few developers to work with the original core team in Switzerland.
    Digital Transformation and Disruption, Amazon Style - What You Can Learn. Chris Kocher is a co-founder of Grey Heron, a management and strategic marketing consulting firm. He has 25+ years in both strategic and hands-on operating experience helping executives and investors build revenues and shareholder value. He has consulted with over 130 companies on innovating with new business models, product strategies and monetization. Chris has held management positions at HP and Symantec in addition to ...
    The challenges of aggregating data from consumer-oriented devices, such as wearable technologies and smart thermostats, are fairly well-understood. However, there are a new set of challenges for IoT devices that generate megabytes or gigabytes of data per second. Certainly, the infrastructure will have to change, as those volumes of data will likely overwhelm the available bandwidth for aggregating the data into a central repository. Ochandarena discusses a whole new way to think about your next...
    CloudEXPO | DevOpsSUMMIT | DXWorldEXPO are the world's most influential, independent events where Cloud Computing was coined and where technology buyers and vendors meet to experience and discuss the big picture of Digital Transformation and all of the strategies, tactics, and tools they need to realize their goals. Sponsors of DXWorldEXPO | CloudEXPO benefit from unmatched branding, profile building and lead generation opportunities.
    Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...
    All in Mobile is a place where we continually maximize their impact by fostering understanding, empathy, insights, creativity and joy. They believe that a truly useful and desirable mobile app doesn't need the brightest idea or the most advanced technology. A great product begins with understanding people. It's easy to think that customers will love your app, but can you justify it? They make sure your final app is something that users truly want and need. The only way to do this is by ...
    DXWorldEXPO LLC announced today that Big Data Federation to Exhibit at the 22nd International CloudEXPO, colocated with DevOpsSUMMIT and DXWorldEXPO, November 12-13, 2018 in New York City. Big Data Federation, Inc. develops and applies artificial intelligence to predict financial and economic events that matter. The company uncovers patterns and precise drivers of performance and outcomes with the aid of machine-learning algorithms, big data, and fundamental analysis. Their products are deployed...