The goal of Hours 13 through 19 was to provide you with a summary of what each of these vendor’s products could do and provide you with a glimpse of what development with this tool is like.
By this point, you are probably wondering how to choose the right tool for you with so many options available. In this hour, you will learn
What factors need to be considered when making a choice
How the tools stack up in each area
The advantages and disadvantages of each tool
With many of the technologies that were created to enable software to interoperate across hardware boundaries, the choices that you make early on commit you for years to come. Fortunately, Web services are different in this area. Because all the Web services tools that you can download or purchase comply to the same set of core standards, you have the option of changing development environments. In addition, you have the option of allowing different groups in the same organization to use different tools to create and consume Web services.
As a further complication/advantage, some tools that we have covered in this book—such as Axis—excel in creating Web service providers, whereas others—such as Visual Studio .NET—excel in creating Web service consumers. It might make sense to choose one tool for the server side and another for the client side. There are still reasons to use the same tool where possible, such as maintenance and training costs.
Some of the tools that we covered are free for downloading, whereas others are quite pricey. It might make sense for you to begin with one of the free tools, but migrate to a more expensive one after you have gained experience and proven to your organization that this technology is practical. Some of the tools do much more than just Web services—both IBM WebSphere Studio Application Developer and Microsoft .NET are full blown software versions of the Swiss Army knife.
You will need to see the load that will be placed on the system in production. If the load is light, you might be able to get away with using the free tools. If the application needs to scale to handle a large user base, you might have to purchase a more scalable tool.
The products selected for evaluation in this book were chosen based on our experience, with a real effort made to cover as broad a spectrum as possible. We made an effort to include products by small independent vendors as well as those by the big players such as Microsoft and IBM. We tried to include the freeware products as well as the commercial products. We could not evaluate every product on the market. As a result, our choices should be seen as a representative sampling of the products available. Many products that we failed to include in the evaluation might be as good or even better than those that were evaluated.
The list of evaluated products along with the abbreviation that we will use in this hour is shown in Table 20.1.
Details about each product are available in the individual hours where these products are introduced:
In order to assist you in your evaluation of the different options, we have created a set of issues in which these products differ from one another. In each section, we will point out products that stand out in that area. Keep in mind that these impressions are opinions based on our experience with the product in varying periods of time. You might disagree with our conclusions, but we believe that it is more valuable to you for us authors to take a stand and not just lead you through pages of “happy talk” designed to please everyone.
Cost is a factor in nearly every decision made by an organization. It would be a mistake, however, to focus solely on the cost of acquisition while ignoring other, often-larger issues such as development cost, support costs, outside resource expenses, the cost of hardware, and the long-term maintenance of the systems created with these tools.
Because full life-cycle costs are impossible to estimate without knowing the specifics of your organization, we will have to limit our specific discussion to acquisition costs. Table 20.2 shows the approximate acquisition cost of each product.
Notice the wide variation in prices among the different products. Nearly all the products listed in the table have a free evaluation version available at their vendor’s Web site. The cost of training and hardware would have to be considered separately.
Both the learning curve and the speed of development are a function of the language background of the developer. Naturally, a Java developer will be productive sooner in a Java-oriented tool than in one that is focused on the C++ developer. Table 20.3 shows the language background that is most natural for each tool.
You will notice that Java is the language for most of the products listed here. The reason for this is that much of the server development taking place outside of Web services is done in Java. This makes Java a natural, but not the only, language suited to Web service development.
All the previously listed products require some level of expertise to use. With some products, it takes very little time to get a simple Web service up and running. Others are less automatic and require quite a bit more education before you can be productive. Speaking generally, the more costly tools provide more GUI support for the development of the Web service. In some cases, the product itself is complex, but when you understand how to use the interface, creating Web services is not hard. Table 20.4 rates the learning curve steepness for each evaluated product.
Table 20.4. The Evaluated Products’ Learning Curve Steepness
Tool | Steepness |
---|---|
Axis | Medium for Java programmers |
Java WSDP | Medium for Java programmers |
.NET | Easy for VB, C++, C# programmers |
BEA Workshop | Easy for Java programmers |
WSAD | Steep |
GLUE | Easy for Java programmers |
PocketSOAP | Easy for VB, C++, C# programmers |
SOAP::Lite | Easy for PERL programmers |
Most of the complexity of the WSAD and .NET products comes from the fact that the product is a full-scale development environment that can be used for creating any type of Web service or J2EE type of application. After the tool is mastered, learning how to create Web services with it is not too difficult.
Axis and Java WSDP are free downloads that are intended for the Java programmer audience. This group of developers is not that fond of graphical tools, or perhaps they are just not fond of the Java-based graphical tools that they have been given to use. As a result, none are provided.
Many open source projects don’t have graphical tools because they’re hard to do, and it’s seen as overhead code that doesn’t actually contribute to solving the problem defined by the project.
The development speed can be measured by how long it takes a developer to complete a task after he is familiar with the tool and the development process imposed by the tool. Table 20.5 gives our opinions on how productive you will be when proficient.
Table 20.5. The Evaluated Products’ Development Speed
Tool | Speed |
---|---|
Axis | Medium for Java programmers |
Java WSDP | Medium for Java programmers |
.NET | Fast for VB, C++, C# programmers |
BEA Workshop | Fast for Java programmers |
WSAD | Fast for Java programmers |
GLUE | Medium for Java programmers |
PocketSOAP | Medium for VB programmers |
SOAP::Lite | Medium for PERL programmers |
The tools that provide greater automation enable higher productivity in exchange for an increase in cost. For all these tools, after you develop a solution with their framework, it can be very difficult to migrate your business logic to another framework.
In the real world, every organization has a history. That history is studded and strewn with the decisions made in years gone by. Many of these systems were state-of-the-art in the day that they were created and, more importantly, they contain data that is the basis for your organization.
Many of the products such as PocketSOAP or GLUE provide no special leverage when working with legacy data. MS .NET contains special tools that make the conversion of legacy code (DCOM) to .NET code easier. For IBM mainframe developers, WSAD provides a good environment for writing Web services that retrieve data from DB2 databases running on the big computer.
BEA Workshop makes it easy to expose existing EJB session beans as Web services, and Axis fits seamlessly into a Tomcat installation. Table 20.6 shows these relationships.
If you have experience and a base of code in the Legacy System section, you will find that the tool in the left column of Table 20.6 provides some advantages when transforming these objects into Web services.
Keep in mind though, that all these products can be used to access any of the data. It is a question of convenience, not a question of capability.
It is not yet clear whether there will be a consolidation of Web service vendors. Because of the open-minded nature of Web services, a vendor doesn’t have to command a huge market share to be viable. He does, however, have to make more money than he spends in order to survive.
In other situations, a vendor will change directions without a visible reason and start preaching a different lesson than he was preaching the year before, which was different than the one preached the year before that. Bearing that in mind, we evaluated who, in our opinions, was the most likely to continue investing in the vendor’s toolkits and who was likely to remain faithful to the Web services approach. Table 20.7 contains our predictions on whether a vendor will be active in Web services in five years.
This is all very unscientific, but based on the following reasoning: Axis is an open-source project. Volunteers do all the software development on open-source projects. It’s a grass-roots effort with people using their own resources and investing their own time to build free software for the community. This allows them to survive without a profit margin. Java WSDP is similar to an open-source project: It doesn’t have to be profitable to survive as long as Sun Microsystems survives.
Microsoft will be in business in five years, but it has a history of changing direction every few years. Microsoft brought us the VBX, followed by OCX, followed by ActiveX, COM, DCOM, and now .NET and Web services. Management swears that they have bet the company’s future on Web services, and we believe them. The company’s track record does not instill confidence, however.
IBM will also be in business in five years, but it has a similar history of changing directions. Like Microsoft, the company has contributed much time and energy to the establishment of Web services standards, so we tend to believe that it will maintain its commitment.
BEA is well respected as a technology company, but it is still in the formative years of its history. WebLogic is most popular as a J2EE server, but that hasn’t translated into huge profits yet. It lacks the cash-cow business lines that rivals, Microsoft and IBM, live off of. WebLogic is, however, the sentimental favorite because it is good at what it does. We believe that the company will still be a force in five years.
The small vendors of SOAP::Lite, GLUE, and PocketSOAP face an uncertain future. Their products are free, so their revenue stream is nonexistent, at least for Web services. They are not open-source projects, so they don’t get donated labor. We are not sure that they will still be improving their products in five years, though it is likely that today’s versions will still be around in the future.
Many of the vendors offer their product into a niche market. PocketSOAP was originally written for handheld computers such as the Palm and Pocket PCs. It runs on Windows 95 and 98, unlike .NET.
Microsoft has carved out a big niche in the desktop computer area with Visual Basic and Visual C++. The Web services client support in .NET is outstanding. It is easy to foresee Microsoft as a dominant player in the Web services client area.
Apache Axis is a companion product to Apache Tomcat. Given that more than half of all Web servers run Tomcat, it seems logical that a large number of those shops will choose Axis as their SOAP engine. The fact that Axis is a well-crafted but spartan tool is appealing to those Java programmers who never really liked graphical development environments very much anyway.
IBM will leverage its mainframe business and contacts in Fortune 500 companies to use WebSphere AD. This is a good fit for large companies that can afford $3,500/seat for a development tool and the training budget needed to become productive. WebSphere is a powerful tool in the hands of those who understand how to use it.
As writers, documentation is near and dear to us. Unfortunately, the documentation that surrounds Web services tools is not very good overall, except with .NET. Microsoft does an average job of documenting its products, but the book writers do a bang-up job on all Microsoft tools. As a result, .NET developers can always find answers. Table 20.8 shows the quality of documentation available from all sources.
The Java programming language is well documented both at Sun and in third-party books. Java Web services books are not rare either, though they often concentrate on the Java WSDP, which is not really a production environment.
Apache Axis suffers from the typical lack of documentation that surrounds open-source projects. It seems that volunteers write better software than they do manuals. Few Axis books are on the shelves at your local book store. They will likely appear over time.
WebLogic Workshop has some following in the book world, but BEA does a better-than-average job in its online docs. IBM writes much better software than it does documentation. There doesn’t seem to be much organization in what the company publishes. For example, it is not unusual to find four articles on how to do an obscure task in Web services, but not one “Hello,World” style example can be found on the whole Web site. IBM product books don’t sell well either, so there is no hope of getting much help there. Unless this situation changes, WSAD might be the software world’s best-kept secret. Other well-engineered IBM products like OS/2 and PowerPC have failed to capture market share.
PocketSOAP, GLUE, and SOAP::Lite have no following to speak of in the book world. There is quite a bit of informal online documentation, and Pocket::SOAP has a fine following in the Yahoo! groups.
Before concluding, we need to mention that several of the products evaluated here are far more than just Web services development tools. Both WSAD and Microsoft .NET are full-blown software versions of the Swiss Army knife. Both products allow you to develop dozens of different products in addition to Web services providers and clients. If you have a need for a full-service IDE, they might be an affordable choice, but only if you are going to use them a lot.
In this hour, you were led through a series of sections that dealt with one characteristic of Web services tools. The goal of this was to help you decide which Web services development toolkit is right for you at this time.
We looked at each toolkit from many angles such as cost, quality of documentation, availability of support, and professional services. Finally, we looked at issues such as vendor niche, track record, and commitment to the technology.
The Workshop is designed to help you review what you’ve learned, and begin learning how to put your knowledge into practice.