- Integration Factors to Consider
- The Linux Solution
- File Services
- Print Services
- Edge Services
- DNS/DHCP Servers and Routing
- Web Servers
- Workgroup Databases
- Light Application Servers
- Computation Clusters
- Data Center Infrastructure
- Enterprise Applications
- Messaging and Collaboration
- Internal Development
- Power Workstations
Light Application Servers
One of the problems with trying to definitively predetermine areas of deployment and implementation is that classifications are general and there is always overlap. This section looks at "light" application servers, and succeeding sections look at "heavy" application servers. What's the difference? There's no clear delineation; we'll make some general assumptions that data center or heavy application servers require more complex infrastructure with five 9s of reliability required, so multiprocessing, clustering, geo-site failover, and other technologies are required. In reality, most of the basic components for application servers are the same for heavy and light, but heavy application servers require more horsepower.
What is an application server? It can have a broad definition, including a piece of hardware, an operating system hosting an application, a client/server software application, a software solution that web-enables an application, or any combination of these.
What are web services? Another good question without a simple answer. Wikipedia (the online open source encyclopedia) defines web services as "a collection of protocols and standards used for exchanging data between applications. Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks like the Internet. This interoperability is due to the use of open standards."
Perhaps an illustration will make it more clear. If the core of an application can be compared to a TV studiothe place where real images are createdthen web services can be likened to the network of transmission services that send image signals anywhere in the world to be viewed on individual TV sets. TV sets vary in size and type, but image reception is based on a fairly common standard or two. The image traverse from studio to TV set can vary dramatically. Images can be converted, compressed, and encrypted; encoded with extra information and ratings; transmitted through wire, satellite, microwave; held for delay or retransmission at a local broadcast facility; and then transmitted to an endpoint where it might again be converted, unencrypted, or decompressed. Web services can be likened to all the processes, services, and standards that take the image from the studio to the TV set. It is a collection of protocols and standards that govern the exchange of data to, from, and across applications to provide a universe of possible services using the Internet as the infrastructure. The basic idea is that an application component, function, or process developed to run on a client or server can communicate with (take input, send output) to another "service" (application/function/process) across the Internet. These "services" can be aggregated into collections to create hybrid services; they can broadcast their availability for use or search for other services; they can tap into legacy applications or enterprise software. Web services by design are flexible and accommodating, yet provide a framework and components for establishing business processes based on rules and policies.
Here's an example of a simple solution built using web services. A Fortune 500 company purchases goods and services at a cost of about $1 billion per year, and in the course of paying bills, processes over 220,000 purchase orders. Historically, purchase orders were manually processed through the company's ERP system upon receiving paper invoices. With the existing ERP system still in place, a web services solution was created that provides paperless invoice submittal by vendors, self-service invoice and payment tracking, and automated process flows for problem invoices based on definable business rules and policies. XML connectors were created to query and populate the ERP system. These connectors and the processing of input/output are managed on a web application server. Invoice data in XML format is transmitted to web servers, where it is displayed in formats specific to viewing devices. The entire system is secured by directory-based authentication that is again coordinated with in-house legacy applications. This particular web services-based solution resulted in reduced headcount, a decrease in problem invoice turnaround from 30 days to 10, plus a net increase in income for discounts received on early payments.
In the simplest web services case, there is a provider, a consumer, and a registry. A web service provider is an organization that creates and hosts a web service. Typically, a provider publishes information about its organization and the services it offers in a web service registry that can be queried by consumers. A web service consumer finds a web service (typically by querying a registry), then runs the service by establishing a connection to the provider (called binding to a web service). A web service registry is a collection of business and service information that is readily accessible to providers and consumers, through programmatic publish and querying interfaces.
Requests for web services and responses from them are made using Simple Object Access Protocol (SOAP), a standardized XML-based messaging protocol. These requests and responses are embedded in HTTP so the interaction between service/application or provider/consumer can take place across the Internet. A web service performs the application logic for a particular request and then returns any application output in the form of another SOAP message embedded in an HTTP response. To specify information about a web service in a standard form, the provider creates a Web Services Description Language (WSDL) document describing its characteristics. WSDL is also an XML-based format.
The success of web services is rooted in the fact that they are based on common industry standardsstandards that have evolved over time and have been established through a process of testing and implementation that is not controlled by a single group or vendor. Standards enable portability across platforms, integration with a vast selection of other applications, and consistency for development and reuse. Web services standards typically include J2EE, XML, SOAP, WSDL, and UDDI:
J2EEJava 2 Platform, Enterprise Edition (J2EE) is the platform for building distributed enterprise applications using Java technology. The platform consists of an application server or servlet container that manages and coordinates the execution of Java servlets, Java Server Pages (JSPs), Enterprise Java Beans (EJB), and other interfaces and services. J2EE is not operating system- or hardware-dependent and provides for distributed processing across locations and service platforms.
XMLExtensible Markup Language (XML) is a standard for the definition and description of data in context. XML tags describe what a particular selection of text represents and how it is related to other text in the same group or hierarchy. XML makes data and its meaning portable for consumption by other processes and displayable across a wide range of devices in a variety of formats. XML is an important web services standard, as it is used both for SOAP and WSDL.
SOAPSimple Object Access Protocol (SOAP) is an XML-based message protocol for invoking web services in a decentralized, distributed environment. SOAP's text-based format and XML-like syntax provide a simple mechanism for process-to-process information exchange and invoking services across the Web. SOAP's protocol provides a framework that describes what is in a message (envelope), how to process it (rules for expressing datatypes), and a standard for expressing remote procedure calls.
WSDLWeb Services Description Language (WSDL) is a protocol for describing the capabilities of a web service, including the protocols and formats used by the service. WSDL is XML-like in format and describes network services with either document- or procedure-oriented information about what a web service is, how to establish communication, and where it is located.
UDDIUniversal Discovery and Directory Integration (UDDI) is a standard for registering and discovering web services. It defines a directory of contact information and a catalog of available web services. UDDI defines a framework that enables businesses to discover each other, define how they interact over the Internet, and share information in a global registry. The registry includes business entity information (name, category, location, and so on), service information (category, communication specifications, and so on), and technical information (request/response, security, other metadata).
Novell Enables Web Services Creation
Novell provides the tools and infrastructure components that allow you to create web services solutions. The Novell exteNd Workbench and Novell exteNd Application Server, available individually or with Novell Open Enterprise Server, provide an integrated development environment (IDE) in which to develop web services and the platform on which to deploy them. exteNd Workbench is a visual development interface with an extensive collection of wizards, editors, and deployment tools. Novell exteNd Application Server is a robust and complete J2EE application server that runs on Linux, Netware, Windows NT/2000, Unix, HP-UX, and AIX.
The Novell exteNd Workbench includes enhanced J2EE component and web-service creation wizards, visual designers, archive-based projects, and one-button deployment to J2EE application servers. exteNd Workbench is a J2EE-oriented IDE that providers can use to create, deploy, and maintain web services based on the JAX-RPC standard (Java API for XML-Remote Procedure Call). JAX-RPC enables Java technology developers to create SOAP-based interoperable and portable web services and deploy them on any J2EE-compatible server. Workbench can also be used to develop Java-based web service consumers that comply with JAX-RPC.
Workbench includes the following tools, wizards, and capabilities:
Component wizardsCreate J2EE components, such as JSP pages, EJBs, servlets, Java classes, JavaBeans, and tag libraries
Web service facilitiesInclude a wizard for creating Java-based web service components, a SOAP runtime environment, and a registry manager for searching and publishing to web service registries
Graphical and text-based editorsEdit Java files, JSP files, XML files, WSDL documents, deployment descriptors, and plain-text files; editor formats include open source NetBeans or native Workbench (Deployment Description Editor, Deployment Plan Editor, WSDL); image and class viewers are also included
Project viewsShow the structure of a project's source files and the structure of a project's generated archives
Project toolsAssist in building projects, creating and validating J2EE archives, and deploying archives to J2EE application servers
Deployment toolsProvide one-button deployment of application to all leading J2EE application servers; hot-deployment automatically and immediately deploys to IBM WebSphere, BEA WebLogic, Oracle, or Novell exteNd Application Server
Version control integrationProvides access from Workbench to third-party version control systems
Migration wizardAutomatically updates deployment descriptors and other definitions from J2EE 1.2 to J2EE 1.3
UDDI toolsInclude a test-bed UDDI server, a UDDI browser, and a WSDL editor
jBroker WebProvides core technologies for exteNd web service support, including compilers and SOAP runtime based on JAX-RPC
Web service wizardHelps invoke jBroker web compilers to generate Java classes and WSDL files, plus convert Java to WSDL and WSDL to Java
DebuggerDebugs server-based applications (exteNd Debugger can be invoked from Workbench); test bed client allows running of sample code for accuracy
Registry ManagerDefines profiles, search registries, view business and service information, publish new services to a registry
Integration with other IDEsUses best-of-breed J2EE development tools, such as WebGain Visual Café, Borland Jbuilder, InLine Standard Edition, and Macromedia DreamWeaver or exteNd Designer in conjunction with exteNd Workbench
Novell exteNd Workbench provides an intuitive, graphical tool that eliminates the historically tedious process of deploying in J2EE. Using Novell exteNd Workbench project wizards, developers can create projects in the following J2EE archive formats:
Enterprise archives (EAR)
Web archives (WAR)
EJB archives (JAR)
Application client archives (JAR)
Resource adapter archives (RAR)
Simple Java archives (JAR)
Deploy-only (nonbuildable) archives
The Novell exteNd Application Server is a comprehensive, J2EE certified platform for building and deploying enterprise-class web applications. It supports the full Java 2 Enterprise Edition standard, including JavaServer Pages (JSP pages), Enterprise JavaBeans (EJBs), standards-based programming interfaces for databases (Java Database Connectivity, or JDBC), directories (Java Naming and Directory Interface, or JNDI), messaging (Java Messaging Service, or JMS), transactions (Java Transaction API, or JTA), authorization (Java Authentication and Authorization Service, or JAAS), Java Messaging Service (JMS), XML parsing (Java API for XML Parsing, or JAXP), and other services, such as CORBA and JavaMail. The Novell exteNd Application Server now runs on Novell NetWare 6.5 in addition to various Windows, Unix, and Linux platforms. Novell exteNd Application Server was recently selected as Editor's Choice by Network Computing Magazine, which cited exteNd Application Server's seamless IDE integration and enterprise-class feature set.
exteNd Application Server is fully J2EE 1.3-compliant with advanced enterprise features, such as session-level failover, server-level failover, clustering support, floating JDBC connection pools with dynamic reconnect, remote server console, and hot deployment. Novell exteNd Application Server integrates with Apache Web Server on NetWare, as well as Internet Information Server (IIS), Apache, and iPlanet on other platforms. It supports internationalization and localization in 14 languages. exteNd provides outstanding scalability and fault tolerance, and independent benchmarks show that exteNd outperforms BEA, IBM, and Oracle.
Novell exteNd Application Server includes a rich management console that allows administrators to perform all system management functions, including viewing usage and performance graphically, viewing log files, changing security, and so on. Management functionality is also provided through an SNMP agent for use with Tivoli or CA (Computer Associates) management consoles.
Other features of Novell exteNd Application Server include the following:
jBroker MQIncludes a full implementation of Java Message Service (JMS) 1.0.2 with features for point-to-point and publish-subscribe
jBroker ORBProvides CORBA 2.3 services as well as the RMI-IIOP protocol; features include forward (IDL to Java) and reverse (JavaRMI to IIOP) compilers, Portable Object Adapter (POA), Java Objects by Value, Server Activation, IIOP Connection Concentrator, Pluggable Authentication support, IIOP/SSL, Multicast invocations, COS Name Service, and Object Transaction Service plugability
Enterprise JavaBeans (EJB 1.1)Provides a full-featured EJB server with support for session beans and complex container-managed entity beans; EJBs enable deployment of object-oriented, distributed, enterprise-class applications
Servlets 2.2Enables server-based dynamic HTML; servlets are instantiated once and reused with caching for better performance; supports WARs both as a packaging mechanism and as an application context at runtime
JavaServer Pages (JSP 1.1)Includes JSP-to-servlet compiler for faster compilation and error reporting; also for dynamic HTML through the use of embedded Java tags
Other J2EE platform services:
JNDI 1.2 (Java Naming and Directory Interface)Standardizes access to a variety of naming and directory services
JDBC 2.0 (Java Database Connectivity)Provides access to relational databases and other data repositories
JavaMail 1.1Provides the capability to send and receive email messages to the server
JTA 1.0 (Java Transaction API)Provides a way for J2EE components and clients to manage their own transactions, and for multiple components to participate in a single transaction
XML (Extensible Markup Language)Provides data definitions as well as messaging and communication hierarchies
Enterprise Data ConnectorsEnables connectivity to nonrelational databases and packaged applications, such as SAP, PeopleSoft, and Lotus Notes (connectors are available with Novell exteNd Composer)
Data Source ObjectEnables automatic data binding in which client-side, data-aware controls such as text boxes, list boxes, and drop-downs can be bound to columns of a Data Source Object without writing code; also interact with transaction-processing monitors and servers, such as CICS (Customer Information Control System), Tuxedo, Microsoft Transaction Server, and so on
Imperial Sugar Company, one of the largest sugar refiners and processors in the United States, needed to enhance customer service and reduce order-processing costs to be competitive in an industry with razor-thin margins. Using exteNd technology, Imperial Sugar XML-enabled sales transactions from a legacy system, assembled them into appropriate business process flows, and exposed them as web services in an advanced web services-based portal that allows its customers to place orders electronically and view a real-time picture of their relationship with the company. Novell exteNd's intuitive, visual design environment requires very little training to create services from mainframe applications, and Imperial Sugar completed the design and implementation of its web services architecture in six weeks, followed by two months of testing, after which it began rollout to its 10,000 customers. Imperial Sugar uses the Novell exteNd Application Server to manage all of the runtime execution for both its web services components and the new Imperial extranet portal application. The load balancing features of the exteNd Application Server deliver the scalability and performance necessary for Imperial Sugar's phased rollout of the extranet, and its fault tolerance assures high availability to its customers.
Open Source Web Services Tools
You can also get web services components and tools from the open source community. JBoss (the company) provides JBoss Application Server, a certified J2EE-compatible platform. JBoss is based on aspect orientation functionality. Aspects allow you to easily modularize a code base through a separation from application logic and system code. JBoss offers clustering of objects, including EJB, JMS, HTTP, and Java objects.
Jakarta Tomcat, or Tomcat as it is commonly called, is another open source application server available through the Apache Group. Tomcat is more accurately a servlet container that accommodates Java Servlets and JavaServer Pages (JSP). At a simple level, a servlet container is an application that hosts servlets, providing a communication path between the web server and the servlet. The servlet container coordinates client requests for a process, ensuring that a single instance of the servlet is in memory while executing a new thread to execute servlet methods for each request.
We've spent a lot of time exploring the tools and components available for the creation of web services. Note, however, that this is one area in which implementation or migration is generally not a simple process. Implementing web services-based solutions often coincides with or requires redefining business processes. This affects not only how information flows through an organization, but also how it flows between organizations with partners, suppliers, and customers. An effective web services solution takes planning, education, training, development, and implementationoften in iterative cycles. The benefits, however, can be significant with streamlined data flows, wider distribution of more focused content, and efficient self-service operations. Customers are happier, partners are more effective and better integrated, and the bottom line goes up.
Proprietary Application Servers
Web services applications won't be the holy grail for every organization. There are, and will continue to be, many line-of-business applications that are not web-based, and might or might not be available on Linux. Many existing applications are built using proprietary servers using proprietary fat clients. Applications for networked project planning, financial analysis and planning, and a whole raft of networked applications that are Windows client-dependent are not going to be quick migration projects. A backend Exchange server tied to Active Directory with Outlook clients is not going to be an easy thing to eliminatehave we mentioned vendor lock-in?
Several application server accommodation strategies are possible, including coexistence. It might be that some applications will never migrate (in the foreseeable future) and, in this case, Novell technologies can again help. Using file sharing, storage, and clustering technologies, all data from applications can be stored in Linux-based storage solutions. iSCSI SANS, Samba, and clustering can be used to ensure that proprietary application data is secured and managed in conjunction with other Linux-managed data. In addition, web services can be used to leverage proprietary solution services to open standards-based clients. The majority of users will never know that content is coming from an antiquated source.
It's also worth mentioning that practically every ISV that is serious about staying in business and maintaining market share is porting its applications to Linux. Just look at some of the top business software applications (large and small) and see who's not including Linux as a supported platform. Players such as Oracle, CA, IBM, Novell, SAP, PeopleSoftall have applications that call Linux home. Also take into account all of the Unix-based applications that can run virtually unchanged or with only minor modifications on Linux. There's only one major application player that isn't listed!
If you look at the database offerings from all the major commercial database vendors, you will note that each includes technical and product support on Linux. These vendors have adopted the same model as Novell in substituting Linux for the operating system platform while continuing to provide a collection of complementary proprietary services and offerings. The complete packageopen source and proprietarysolves customer needs with valuable solutions. As a result, the entire package is available with a full complement of customer support.