Despite the market slump and the highly publicized failure of many dot-com ventures, the stampede to establish a business presence on the Web continues. This trend applies to new companies created expressly for the Web, as well as already established, real-world businesses migrating to the Web to keep pace with market demands.
As smart connected embedded devices and information appliances become available, they'll play a crucial role in the future of pervasive e-business solutions. But e-business applications must meet some fundamental requirements that have not been part of the structure of traditional business applications, and the quest for effective ways to implement Web-based solutions has become a top priority for both technology customers and technology suppliers.
Early e-business solutions were adequate for Web sites offering mostly static content. However, the need now is for sophisticated, data-driven environments where customers can place orders, see inventory, book travel, track packages and do much more. E-business managers need to rapidly develop secure, robust, and highly scalable, enterprise-class applications that access existing corporate data and applications and that provide high-end transactional capabilities.
These applications present many new challenges. Simple Hypertext Transfer Protocol (HTTP) requests received via the Internet need to trigger complex business tasks on existing enterprise information systems. E-business applications must conform to industry standards to ensure portability across multiple client and server platforms, and they must be server-centric so they may be developed and deployed quickly for a broad range of clients.
E-business apps must be scalable and flexible, not only to handle the highly variable and unpredictable loads in today's Web environment, but to deliver dependable content to a wide variety of clients, including handhelds and embedded devices. In addition to all these requirements, they must run 24 hours a day, seven days a week, with guaranteed quality of service, and they must be secure, to address the potential risks of doing business on the Web. Confidentiality, auditing and nonrepudiation of messages are increasingly critical characteristics of a request.
In the complex, fault-vulnerable Web environment, good engineering and programming methodologies are more essential than ever to ensure that these requirements are met. The basic characteristics of the various elements and how they relate to one another must be precisely defined before the hardware and software needed to operate in this space are designed.
Application frameworks are tools to achieve this goal. An application framework describes a set of interacting components and services available to an application, their responsibilities and their interactions. The framework helps designers capture the essence of successful patterns, architecture, components, policies, services and programming mechanisms to deal with the complex requirements of e-businesses. A developer creates an application by composing and extending the components and services available in the application framework.
Application frameworks typically have been used to describe specific business domains, such as manufacturing or finance. But in the complex Web environment, what is necessary is a Webwide framework that describes all of e-business and spans multiple types of domains.
IBM, in cooperation with many service partners, has launched an initiative called The Application Framework for e-business (AFeb), consisting of a comprehensive set of open standards, services and products that address the requirements of e-business applications. The goal of AFeb is to enable the quick design and deployment of a broad spectrum of robust, secure, scalable, manageable, interoperable and portable e-business applications.
Thus, AFeb is a foundation framework for e-business application development at two levels. On the first level it defines an application framework for e-business applications in general. On the second level, it provides a set of application frameworks for domain-specific e-business apps. IBM has developed extensive software and hardware products based on AFeb.
AFeb defines three important elements: 1.) A system model that structures the fundamental topology of e-business applications; 2.) An application programming model, based on the system model, that includes an architecture that supports a variety of business domains; and 3.) A platform for developing, deploying and managing e-business solutions.
The AFeb system model defines the relationships among Web-oriented e-business applications, devices and architectures and has five key elements:
clients, middle-tier servers, enterprise information systems, the network infrastructure and a systems-management layer.
Clients interact with the user to send and receive standard data formats. The clients that are supported range from devices running standard Web browsers to pervasive devices with local programming models, such as personal digital assistants, set-top boxes, automotive telematics and digital wireless telephones.
Middle-tier servers include a Web server that interacts with the client tier and that includes a Web application server for executing business logic independently of the client type and user interface style. The middle-tier servers incorporate several application-integration technologies for communicating with applications, data and services in other tiers.
The enterprise information-system tier includes internal and external applications, services and data. Application-integration software provides access to existing data and applications. Application services provide prebuilt, tested building blocks to facilitate the creation of e-business solutions.
The network infrastructure ties the tiers together and connects them to networks. The network infrastructure also provides functions such as service location, security-related capabilities such as user authentication, and technologies to improve scalability.
Systems management provides functions such as capacity planning, change control, asset management and security testing.
The application-programming model, or APM, derived from the framework, provides details for the design of the e-business application based on the structure suggested by the system model.
At the highest level, APM supplies common architectural frameworks and shows how to take the framework parts and tie them together for particular classes of domains. For example, the user-to-online buying pattern is used where packaged goods are sold online through a catalog via a shopping cart or similar tool. The user-to-data pattern covers use of tools to extract information from large volumes of disparate information. The business-to-business integration pattern supports automated interaction between arm's-length business partners; supply-chain management is an example of this pattern.
At a middle level, the APM supplies an architecture that defines services such as application servers, network access, directory and database, and the relationships among them. At the lowest level, the APM architecture defines the set of parts that an application developer can use to compose the application and access the framework services.
The AFeb architecture structures the services available to an e-business application, defines the parts used and extended to construct the application, and defines the relationship between the parts and services. The parts present a set of interfaces, protocols and data formats comprising the low-level APM.
The software architecture is composed of the following key elements: application servers, clients, integration software, the network infrastructure, systems-management functions, application services and tools.
Application servers for the middle tier of e-business apps include the Web server and the Web application server. Application servers provide the core presentation services and business logic for e-business applications, database and transaction services, mail and community services, collaboration services, messaging services and others.
Clients supported range from devices running standard Web browsers to pervasive devices such as personal digital assistants, smart cards and digital wireless telephones. Application-integration software provides access to existing data and applications. A network infrastructure accessed via standard interfaces and protocols provides services such as basic network connectivity, directory and security. Systems-management functions accommodate the unique management requirements of e-business applications across all elements of the system. The application services provide prebuilt, tested building blocks to facilitate the creation of e-business solutions. Tools are provided to build, run and manage e-business solutions.
Enterprise Java technologies are used to create components. Web-server support components, based on platform-independent Java servlets and JavaServer Pages (JSP), provide most of the user interactivity in an AFeb application. AFeb also assumes the use of Enterprise JavaBeans (EJB) components to provide much of the business logic of an AFeb application, especially access to database and transaction services. EJBs isolate the component developer from the unique characteristics of the underlying database and transaction services, simplifying the development of platform-independent business logic.
Containers provide a view of the AFeb services to the application components. Containers also provide important mechanisms such as life-cycle management, transaction management, security, resource pooling, threading and state management by providing well-defined run-time environments that are aware of the packaging and deployment characteristics of AFeb applications. The separation of components and containers enables binding of application components to AFeb services at the time of deployment rather than during development. This "late" binding enhances the portability, manageability and reliability of the application. It also facilitates team development of e-business applications by isolating the various development roles so that the respective domain experts can focus on his or her tasks.
Middle-tier containers support the implementation of application components based on enterprise Java technologies. The Java 2 Platform, Standard Edition (J2SE) is the basis for Enterprise Java and brings a number of standard interfaces, protocols and data formats into the AFeb.
Connectors are small Java libraries, or "framelets," that provide access to services reached through application-specific protocols. AFeb provides connectors to a range of existing application, transaction and data servers normally accessed with proprietary network protocols. The connector architecture of the AFeb provides a uniform model in the Java platform for using all connectors and is the basis for a future Java-standard extension for connectors. The business logic running in a servlet, or JSP, on the middle tier accepts an HTTP request from the client and invokes a connector to securely communicate with enterprise information-system tier services on the client's behalf. The connector architecture is "pluggable," allowing additional services and applications to be supported in the future.
AFeb supports a wide range of clients, from information appliances such as digital telephones and personal digital assistants, to personal computers. Although the capabilities of these devices vary significantly, they all rely upon Web-based technologies.
To the AFeb, thin client means that little or no application logic runs on the client, and therefore little of the application needs to be installed on the client, even dynamically. Normally only user interaction and input validation functions run on the client. The definition of the user interface is supplied by the middle tier, and the application business logic and data storage are generally deployed on middle and enterprise information-system tier servers.
AFeb supports two basic styles of thin client. Both styles interact with a Web server using HTML and HTTP or secure sockets layer (SSL) for improved security. The browser thin client requires only a standard browser when the interaction is defined totally via HTML.
Thin clients support a broader range of client devices since the dependency on device capabilities is reduced. The middle-tier servers integrate access to business-critical resources, which simplifies application design, deployment and management, improves scalability and provides greater security. Finally, users' application environments can be centrally managed and distributed to provide support for mobile users.
AFeb supports other models as well. For example, rather than going through a Web server, applets can connect directly to back-end services for database access via JDBC. The Java application client, which might be appropriate in intranet deployments, can interact with the user and middle-tier services to provide an experience similar to typical desktop applications.
AFeb's extensible security architecture accommodates myriad authentication mechanisms, including user identifier and password, one-time pass tokens, secret-key cryptography (Kerberos Version 5) and digital certificates based on public key infrastructure standards such as X.509. The AFeb includes single sign-on technology that enables users to access Web resources and back-end systems using existing user names, making it easier to integrate with existing applications.
The AFeb system model and APM are primarily specifications, not physical technologies and services. The AFeb platform encompasses a set of physical product components, tools and services that together support the development, deployment and management of e-business solutions designed according to the system model and APM.
The support of industry standards by AFeb means that components, tools and services for it are available from many sources. AFeb leverages many industry or de facto standards, including enterprise Java technologies. As a member of the Java Community Process, IBM joined with nearly 50 other companies to help create the Java 2 Platform, Enterprise Edition (J2EE), which integrates a multitude of enterprise Java technologies. J2EE simplifies the development and deployment of multitier e-business applications. Although AFeb and J2EE share this common goal, the scope of AFeb is much broader-it includes a more comprehensive system model, a more extensive application programming model and a robust platform implementation populated with services and the tools required to design, build, run and manage complete e-business solutions. As AFeb evolves, Java technologies will continue to be an important component of the application programming model and platform.
As smart connected embedded platforms become participants in e-business solutions, it will be important to extend J2ME standards to embrace these requirements. AFeb will incorporate mobile IP, the Wireless Application Protocol (WAP), the Wireless Markup Language, Bluetooth and other relevant standards as they emerge.
See related chart