1 Introduction

This chapter describes Oracle Fusion Middleware. It includes the following sections:

1.1 What is Middleware?

Middleware is the software that connects software components or enterprise applications. Middleware is the software layer that lies between the operating system and the applications on each side of a distributed computer network (Figure 1-1). Typically, it supports complex, distributed business software applications.

Middleware is the infrastructure which facilitates creation of business applications, and provides core services like concurrency, transactions, threading, messaging, and the SCA framework for service-oriented architecture (SOA) applications. It also provides security and enables high availability functionality to your enterprise.

Middleware includes Web servers, application servers, content management systems, and similar tools that support application development and delivery. It is especially integral to information technology based on Extensible Markup Language (XML), Simple Object Access Protocol (SOAP), Web services, SOA, Web 2.0 infrastructure, and Lightweight Directory Access Protocol (LDAP)m etc.

Figure 1-1 Middleware Architecture

The graphic provides a general overview of Middleware
Description of "Figure 1-1 Middleware Architecture"

Due to continued growth and use of network-based applications by businesses, middleware technologies are increasingly important. Companies and organizations are now building enterprisewide information systems by integrating previously independent applications with new software developments. The integration process may involve legacy applications which may be used only with, or through a nonmodifiable interface. In some cases, rewriting the code for a legacy application may be cost-prohibitive.

Increasingly, information systems are composed of a collection of various specialized hardware devices interconnected by a network. Each device performs a function that involves receipt of real time data and remote interaction with other devices of the system. Some examples include computer networks, telecommunication systems, uninterrupted power supply units, and decentralized manufacturing units.

Interaction with the information system may span a wide range of performance. You can interact with Internet applications through a variety of devices, whose characteristics and performance figures span an increasingly wide range. Between a high performance personal computer, a smart telephone, and a personal digital assistant, the variations in bandwidth, local processing power, screen capacity, and the ability to display color pictures, are extremely large.

1.2 Functions of Middleware

Applications use intermediate software that resides on top of the operating systems and communication protocols to perform the following functions:

  • Hide the distributed nature of the application.An application represents a collection of interconnected parts that are operational and running in distributed locations, out of view.

  • Hide the heterogeneity of the enterprise. This includes the hardware components used, computer operating systems, and communication protocols.

  • Provide uniform, standard, high-level interfaces to the application developers and integrators, so that applications can be easily composed, reused, ported, and made to interoperate.

  • Supply a set of common services to perform various general purpose functions to avoid duplicating efforts, and to facilitate collaboration between applications.

Middleware makes application development easier, by providing common programming abstractions, by masking application heterogeneity and the distribution of the underlying hardware and operating systems, and by hiding low-level programming details.

1.3 Middleware Architecture Design

The function of middleware is to mediate interaction between the parts of an application, or between applications. Therefore, considerations for architectural structure play a central role in middleware design. The architectural design encompasses the organization, overall structure, and communication patterns, both for applications and for the middleware itself.

Besides architectural aspects, the main problems of middleware design pertain to various aspects of distributed systems. Any middleware system relies on a communication layer that allows its different pieces to interoperate. In addition, communication is a function provided by middleware itself to applications, in which the communicating entities may take on different roles such as client server or peer-to- peer. Middleware allows different interaction modes (synchronous invocations, asynchronous message passing, coordination through shared objects) embodied in different patterns.

Therefore, middleware system design faces several challenges:

  • Middleware systems rely on interception and indirection mechanisms, which induce performance penalties. Adaptable middleware introduces additional indirections, which make the situation even worse.

  • As applications become more and more interconnected and interdependent, the number of objects, users, and devices tends to increase. This poses the problem of the scalability of the communication and object management algorithms, and increases the complexity of administration. The availability, reliability, concurrency, security, and performance of applications may also be an issue.

  • Widespread computing is a vision of the near future, in which an increasing number of devices embedded in various physical objects participate in a global information network. Mobility and dynamic reconfiguration will be dominant features, requiring permanent adaptation of the applications.

  • Managing large applications that are heterogeneous, widely distributed, and in permanent evolution raises many questions, such as consistent observation, security, trade-offs between autonomy and interdependence for the different subsystems, and definition and implementation of resource management policies.

1.4 Service-Oriented Architecture

Service-Oriented Architecture (SOA) is an architectural style whose goal is to achieve loose coupling among diverse interacting software applications, enabling organizations to take advantage of existing investments in applications and systems. SOA facilitates the development of modular business services that can be easily integrated and reused, thus creating a flexible and adaptable infrastructure. Using a SOA approach, an organization can focus more resources and budget on innovation and on delivering new business services. Systems that can successfully use SOA can minimize the disruption of planned or unplanned outages in an enterprise.

Some of the advantages of using SOA are:

  • Reduction in development time and cost: SOA services are easily reused and can be rapidly assembled into new, composite applications.

  • Lower maintenance cost: Reusable services reduce the number and internal complexity of enterprise services.

  • High-quality services: Increased service reuse creates high-quality services through multiple testing cycles from different service consumers.

  • Lower integration costs: Standardized services know how to work together, enabling disparate applications to quickly and easily connect.

  • Reduce risk: Fewer, reusable services provide greater control over corporate and IT governance policies, and reduce the overall compliance risk to an enterprise.

How does SOA achieve loose coupling among interacting software agents? It does so by employing two architectural constraints:

  • A small set of simple and widespread interfaces to all participating software agents. Only generic semantics are encoded at the interfaces. The interfaces are universally available for all providers and consumers.

  • Descriptive messages constrained by an extensible schema delivered through the interfaces. No, or only minimal, system activity is prescribed by messages. A schema limits the vocabulary and structure of messages. An extensible schema allows new versions of services to be introduced without breaking existing services.

1.5 Oracle Fusion Middleware Solution

Oracle Fusion Middleware offers solutions to and support for complex, distributed business software applications. It includes Web servers, application servers, content management systems, and similar tools that support application development and delivery.

Oracle Fusion Middleware is a collection of standards-based software products that includes a range of tools and services: from a Java Enterprise Edition 5 (Java EE) compliant environment, and developer tools, to integration services, business intelligence, collaboration, and content management. Oracle Fusion Middleware offers complete support for development, deployment, and management.

Figure 1-2 provides an overview of the Oracle Fusion Middleware solution.

Figure 1-2 Oracle Fusion Middleware Solution Overview

Description of Figure 1-2 follows
Description of "Figure 1-2 Oracle Fusion Middleware Solution Overview"

Oracle Fusion Middleware offers the following solutions through its middleware design:

  • Development Tools: A unified SOA development tool and framework. An integrated, but modular, set of development tools to build complete applications, rather than using lots of specialized tools. The design tool includes a single design environment for user interface, business logic, service composition, business process or workflow, business rules, and business intelligence. The design tool enables simplified design and debugging, and to improve productivity. Includes Oracle JDeveloper, Oracle TopLink, Oracle Application Development Framework, and Oracle Eclipse.

  • User Interaction: A single, end-user environment that enable access to enterprise applications, business processes, business intelligence and to share information with each other. This end user environment is multi-channel allowing it to be accessed from a variety of different clients (mobile clients, desktop clients, Voice-over IP (VOIP) clients). Includes Oracle WebCenter Framework and Oracle Portal.

  • Business Intelligence: A suite of business intelligence tools from extract, transform, and load to integrate data into warehouses; query, analysis, and reporting tools for decision support; scorecards to compare how the business is doing against key performance indicators; and alerting to drive notifications to users about problems in the business software. Includes Oracle Business Intelligence Discoverer, Oracle Reports, Oracle Forms Services, and Oracle Portal.

  • Content Management: A repository within which to manage documents, digital assets, scanned images and other forms of content; to integrate this content with a company's enterprise applications, Web sites, and business processes.

  • SOA: A means of using existing investments in applications and systems most efficiently to be able to focus more resources and budget on innovation and on delivering new business services. Includes Oracle Service Bus, Oracle Complex Event Processing, Oracle Business Rules, Oracle Business Activity Monitoring, Oracle B2B, Oracle BPEL Process Manager, Oracle Service Registry, Oracle User Messaging Service, Human Workflow, Oracle Mediator.

  • Application Server: A standards-based Java EE application server to run the enterprise applications and provide the Web services infrastructure for interoperability.

  • Integration and Business Process Management (BPM): A standards-based service bus to connect applications with each other and with legacy systems using messaging; a BPM or workflow engine to connect the application into a business process or workflow; and business activity monitoring and optimize business processes in real time.

  • Security and Identity Management: Lower cost of security administration across multiple applications and systems in an enterprise, by centralizing how users are created and provisioned, their identities, and roles and by enabling them to have single sign-on access. Includes Oracle Internet Directory, Oracle Virtual Directory, Oracle Directory Integration Platform, Oracle Identity Federation.

  • Enterprise Management: Lower cost of operations and administration by running on a grid architecture with grouping, backup, and other high availability technologies, and integrating with Oracle Enterprise Manager for systems management. Includes Fusion Middleware Control, Oracle WebLogic Server Administration Console, Oracle WebLogic Scripting Tool, Oracle Process Manager and Notification Server, Oracle Enterprise Manager 10g Grid Control.