Expert's Corner


Greg Horton
Director of Marketing, Clientele Group
Epicor Software Corporation
ghorton@epicor.com


Search Our Catalog of Articles


  How do enterprise applications like CRM use web services?
 
We see Web services as a set of underlying technologies that form an architecture for developing distributed systems.
 
How does the architecture relate to the application?
When an organization is selecting any piece of enterprise software there is invariably someone assigned to "look under the hood" and evaluate the application's architecture. While this is a critical step in the evaluation process, many organizations do not have a clear understanding of how their short and long-term application needs can be directly impacted by an underlying architecture. Non-functional requirements like reliability, availability and scalability (and a host of other "ilities") need to be considered in the context of other functional requirements such as customization and integration in order to properly evaluate any architecture.
 
Architectural Models
When starting a discussion regarding enterprise software, one should first understand some common software architectures. There have been many architectural models in the history of computing, but three in particular are important for our discussion of business applications. You may know these models by various names.
 
The first model is that used by mainframe computer software. In this model, the entire application resides on a single machine. Input and output is accomplished through the use of terminals. The structure of this architectural model is monolithic. Monolithic means that the application is, for purposes of deployment, a single program that runs on one machine. Applications using this architecture model also run on mini-computers and it is the architecture for stand alone PC applications. Over time there have been variations on this model for multi-processor machines, but the monolithic nature of the application remains - the application is a self-contained unit with all processing happening in the application itself. While some would consider Web-based applications a new model, we consider it to be a variation of the monolithic model.
 
The second model is the client/server model. In this model processing is no longer monolithic. Some of the application resides on the client and other portions on the server. There are variations of the processing mix between client and server, but in all cases both the client and server are necessary for the application to function. While this model added flexibility in application design - the client and server remained tightly coupled. However, one advantage of this model is that you can create more than one client to interact with the server. Many companies did this to support multiple client platforms (i.e. Windows, Mac, UNIX, etc.).
 
The latest model, which has received an incredible amount of press, involves "Web services." Web services are self-describing, self-contained, modular applications that can be mixed and matched with other Web services. Web services are Internet applications that fulfill a specific task or a set of tasks and that work with many other Web services in an interoperable manner to carry out their part of a complex workflow or a business transaction. Web services interact in a language and operating system independent manner - reducing the complexities of integration. Web services based architectures are considered loosely coupled and modular. As a result, a Web service can be replaced with a new one without affecting the client or other Web services that talk to it. Web services read and write eXtensible Markup Language (XML) based on the business logic embedded in them. The Web services model encourages breaking server-side functionality into smaller pieces that exchange XML using Simple Object Access Protocol (SOAP).
 
Why Web services?
As far as the world of computing goes, Web services should prove to be as significant a milestone as any other to date. Unfortunately, as important and revolutionary as Web services are, many of the basic concepts surrounding the technology remain misunderstood. Many people tend to think Web services are limited to the publishing of software services to the Internet. While this is certainly an important role that Web services will fill, it is only a small part of a much bigger picture. At Epicor Software Corporation, we believe Web services represent a significant and fundamental evolutionary change in the way that all distributed systems will be created.
 
Web services also provide the potential for creating interfaces for integration that were previously very difficult due to proprietary interfaces (APIs) and language specific data structures. By using XML (which is text based) to share information and SOAP to communicate in a way that is programming language independent, it is possible to create Web services that talk to other Web services, whether built by other vendors or created internally. Web services introduce the possibility of creating an application from best of breed services provided by multiple vendors. While the applications necessary have not yet been developed and the standards need to be finalized - Web services set the stage for new paradigms of software deployment and use.
 
One key advantage of Web services is a new level of interoperability (another important "ility"). Because Web services interact with each other or with clients via SOAP and XML, it doesn't matter what language your Web services are written in (C# or Visual Basic or Java) or what platform you run (Windows or Linux or UNIX) - they can talk to other Web services! This level of abstraction from operating systems and programming languages is critical to understanding the possibilities introduced by Web services.
 
Another advantage of Web services is that they do not include the user interface. Web services interact with each other (as mentioned in the previous two paragraphs) and with user interfaces. Note that we use the word "interfaces" in the plural. A single Web service can support multiple user interfaces - PC-based and other rich clients, browser clients, small form factor clients, etc. Web services do not force a particular user interface upon application vendors.
 
That fact that Web services function over the Internet is also important. Web services use the most ubiquitous networking transport available. If your server has access to the Internet, then the Web services that reside on it can talk to other Web servers anywhere on the Internet. This allows increased componentization of applications with minimal concern about where components are located and how to connect to them.
 
Finally, Web services are expected to save companies money. According to Gartner, for example, Web services will drive a 30 percent increase in the efficiency of IT development projects. According to Forrester Research, Web services "crush" the cost of business interactions by replacing manual communications to save time and money, cutting the cost of connecting to partners, making internal services available across departments and geographies, and enabling new kinds of business collaboration.
 

 

Search Expert's Corner [top]

 
You can do a simple text search for:

To use this form, enter what you are searching for and click the "Begin Search" button.

 

Search by Company, Author's Name,  Article Title, or Keyword:

Show me the Complete List of Expert's Corner