Oracle Fusion Middleware is a comprehensive family of products ranging from application development tools and integration solutions to identity management, collaboration, and business intelligence reporting. This chapter provides an introduction to Oracle Fusion Middleware. It includes the following sections:
Oracle Fusion Middleware is a collection of standards-based software products that spans a range of tools and services: from Java EE and developer tools, to integration services, identity management, business intelligence, and collaboration. Oracle Fusion Middleware offers complete support for development, deployment, and management.
Specifically, 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 as shown in Figure 1-1. Typically, middleware supports complex, distributed business software applications.
Middleware is also 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, Unicode, Web 2.0 infrastructure, and Lightweight Directory Access Protocol (LDAP). Textual data is represented in the Unicode character set to support data exchange in any language. UTF-8 is used as the standard encoding for transporting data for optimal compatibility and efficiency, while traditional non-Unicode encodings can also be used where supported.
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.
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.
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.
Figure 1-2 provides an overview of the Oracle Fusion Middleware architecture with a common Oracle SOA installation.
For more information see the following guides:
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.
Oracle Fusion Middleware is a collection of standards-based software products that includes a range of tools and services inlcuding developer tools, integration services, business intelligence, collaboration, and content management. Oracle Fusion Middleware offers complete support for development, deployment, and management.
Specifically, 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) with Oracle WebCenter 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.
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.
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: 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: 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.