Home > Articles > Operating Systems, Server > Linux/UNIX/Open Source

This chapter is from the book

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 studio—the place where real images are created—then 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 standards—standards 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:

  • J2EE—Java 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.

  • XML—Extensible 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.

  • SOAP—Simple 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.

  • WSDL—Web 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.

  • UDDI—Universal 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 wizards—Create J2EE components, such as JSP pages, EJBs, servlets, Java classes, JavaBeans, and tag libraries

  • Web service facilities—Include 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 editors—Edit 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 views—Show the structure of a project's source files and the structure of a project's generated archives

  • Project tools—Assist in building projects, creating and validating J2EE archives, and deploying archives to J2EE application servers

  • Deployment tools—Provide 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 integration—Provides access from Workbench to third-party version control systems

  • Migration wizard—Automatically updates deployment descriptors and other definitions from J2EE 1.2 to J2EE 1.3

  • UDDI tools—Include a test-bed UDDI server, a UDDI browser, and a WSDL editor

  • jBroker Web—Provides core technologies for exteNd web service support, including compilers and SOAP runtime based on JAX-RPC

  • Web service wizard—Helps invoke jBroker web compilers to generate Java classes and WSDL files, plus convert Java to WSDL and WSDL to Java

  • Debugger—Debugs server-based applications (exteNd Debugger can be invoked from Workbench); test bed client allows running of sample code for accuracy

  • Registry Manager—Defines profiles, search registries, view business and service information, publish new services to a registry

  • Integration with other IDEs—Uses 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 MQ—Includes a full implementation of Java Message Service (JMS) 1.0.2 with features for point-to-point and publish-subscribe

  • jBroker ORB—Provides 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.2—Enables 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.1—Provides 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 Connectors—Enables connectivity to nonrelational databases and packaged applications, such as SAP, PeopleSoft, and Lotus Notes (connectors are available with Novell exteNd Composer)

  • Data Source Object—Enables 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

NOTE

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 implementation—often 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 eliminate—have 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, PeopleSoft—all 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 package—open source and proprietary—solves customer needs with valuable solutions. As a result, the entire package is available with a full complement of customer support.

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020