Every organization faces the need to predict changes in the global business environment, rapidly respond to competitors, and tries its best to utilize its assets to prepare for the growth and changes in the IT landscape. Your enterprise application infrastructure can either help you meet these business imperatives or it can impede your ability to adapt to change.
To proactively respond to these challenges and the dynamics of change, major organizations worldwide are adopting Service-Oriented Architectures (SOA) as a means to deliver on these requirements. They are also trying to improve their business-IT alignment by adopting Business Process Management (BPM) methodologies, which cannot be successfully realized without a complementing service-oriented architecture infrastructure. The adoption of SOA and BPM methodologies is helping organizations overcome the complexity of their application and IT environments while narrowing the gap between IT and the business. An SOA represents a fundamental shift in the way new applications are designed, developed, and integrated with legacy business applications, and it facilitates the development of enterprise applications as modular business services that can be easily integrated and reused.
Oracle SOA Suite 12c is a comprehensive suite of products that not only includes the Business Process Execution Language (BPEL) process manager, human workflow, Mediator, Service Bus, and Web Services Manager, but also components such as business activity monitoring, Business-to-Business (B2B), User Messaging Service, Enterprise Scheduler, and event processing—all designed to help us build, deploy, and manage applications based on enterprise grade SOA. The deployment of the Oracle SOA Suite 12c platform within the enterprise is accelerated by the continued alignment of business and IT as a result of the rapid adoption of service-oriented and event-driven architectures and business process management.
While businesses strive to be more agile and dynamic, their dependency on a reliable, robust, and scalable infrastructure is also increasing. The need for proactive administration, management, and monitoring of the underlying SOA infrastructure is essential for business continuity. As a SOA administrator, here are some important considerations that you should look at to provide a stable and dependable environment:
- An essential aspect of any successful SOA deployment is the ability to continuously monitor mission-critical services, business processes, events, and service levels in real time to immediately identify problems and take necessary corrective actions.
- Proper management of Service-level Agreements (SLA) is required to define, track, and control appropriate service levels. They provide us with a necessary alert mechanism in the event of an SLA violation.
- SOA infrastructure monitoring provides us visibility of the performance of each individual service transaction across distributed and heterogeneous systems. With this end-to-end visibility, problems can be spotted quickly and corrected to ensure reliable operations.
- The SOA infrastructure is also expected to enforce policies for runtime governance, security, and audit compliance.
- The ability to easily and efficiently automate deployments is equally important as it enables the administrator to rapidly respond to continuous code changes.
In this article, we will provide you with an overview of how to monitor and manage Oracle SOA Suite 12c, which ultimately serves as a prelude for the remainder of this article. This blog describes each of these areas and more, in varying degrees of detail, to arm you with the necessary background and understanding as well as detailed instructions on how to perform key administrative tasks within the Oracle SOA Suite 12c product stack. This article introduces the following topics:
- Overcoming monitoring and management challenges in a SOA
- Centralized monitoring and management of the SOA platform
- Performance monitoring and management
- Managing composite application lifecycles
- Overview of the Oracle Fusion Middleware landscape
- The Oracle SOA Suite 12c infrastructure stack
- The new features of Oracle SOA Suite 12c
My blog focuses on core Oracle SOA Suite, Oracle Service Bus, as well as Oracle WebLogic Server, but not on Oracle BPM Suite, Oracle Business Activity Monitoring (BAM), and Oracle B2B, all of which warrant books of their own.
Identifying and overcoming monitoring and management challenges in the SOA
The very nature of an SOA involves the implementation of services that are distributed and loosely coupled, and thus monitoring these services is complex due to the involvement of disparate systems that may include external systems and external resources (for example, messaging queues, databases, and so on). Tracing transactions across a loosely coupled implementation, particularly if it involves invocations to external applications, is extremely complicated.
The reusable nature of a SOA increases the importance of managing availability and performance of these services and greatly increases the need for a closed loop governance. In order to achieve the desired quality of service (QoS), each service endpoint must literally be managed like a resource. Managed services should have near zero downtime, measurable performance metrics, and a defined service-level agreement. In a composite service infrastructure, it is required that you monitor and manage the end-to-end view of the systems as well as provide detailed information about performance and availability metrics of individual services. Each part of the overall SOA system can appear healthy while individual service transactions can appear like they are suffering.
Tracing transactions across a loosely coupled implementation, particularly involving multiple external systems and resources, is extremely complicated.
Another important aspect of SOA monitoring is auditing and logging. The distributed nature of SOA makes a standardized auditing/logging approach difficult to implement. In addition to monitoring services in real time, an administrator is also required to perform standard administrative duties such as health checks, taking backups, deploying code, tuning performance, purging old instance data, and more. In general, SOA infrastructure administrators are swamped with the following tasks and activities:
- Performing health checks of servers and infrastructure
- Managing multitier transaction flows some of which are as follows:
- Spanning shared components/services
- Deploying multitier transactions across several tiers in different containers
- Managing multitier transactions across the enterprise
- Obtaining performance metrics and visibility of SOA services:
- Obtaining performance metrics beyond generic Java classes and methods
- Obtaining framework and metadata visibility
- Obtaining specific knowledge of the Oracle platform
- Maintaining control over configuration changes
- Tuning the performance of a service infrastructure
- Performing time-consuming administrative tasks, which include:
- Setting up, provisioning, and patching environments
- Code deployments
- Cloning and scaling up
- Backups and restores
- Purging and cleanup
- Troubleshooting faults and exceptions
- Policy and security administration
My blog intends to provide a thorough understanding of how to perform each of these tasks and activities as an Oracle SOA Suite 12c administrator.
Centralized monitoring and management of the SOA platform
Monitoring in Oracle SOA Suite 12c enables a closed loop governance by connecting design time to runtime. Once the services, their metadata, and the associated policies are deployed, they are automatically monitored and managed by the service infrastructure that regularly updates the management console with a scorecard of the runtime metrics that are collected.
Oracle SOA Suite 12c runs on top of numerous infrastructure components that include a variety of operating systems, database management systems, and Java EE compliant application servers. All Oracle SOA Suite 12c components have specific functions that are used to administer and manage parts of a SOA infrastructure, each from a different perspective or for a different audience. In order to address the monitoring and management challenges described earlier, several areas need to be considered:
- Monitoring solutions need to be provided at an enterprise level that encompass all the related applications. This can be as fine grained as monitoring composite endpoints to the overall operational health of the infrastructure.
- Real-time monitoring and proactive alerting based on runtime statistics of the configured Key Performance Indicator (KPI), availability, performance metrics, and service-level agreements should be implemented.
- Reporting important information in the message (that is, payload), captured as a part of the reporting functionality, can aid middleware administrators in better decision making and troubleshooting.
Performance monitoring and management
Performance means different things to different people. For some, it translates to transaction response time, while others view it as the volume of work that can be processed within a given period of time. In order to maximize performance, you will need to monitor, analyze, and tune all the components that make up your application and infrastructure.
The performance of your SOA composites can be directly impacted by the design and implementation of the application code itself, the settings and configuration of the service infrastructure, or the performance of external resources such as queuing or storage systems. Now, the question is, where do you begin to identify a performance bottleneck?
Fortunately, Oracle Enterprise Manager Fusion Middleware Control is a single console that captures and displays key information such as WebLogic Server performance statistics as well as transaction performance details. The following screenshot is simply an overall server-level performance summary:
Figure 1: Viewing performance snapshots using Oracle Enterprise Manager Fusion Middleware Control
(Later my blogs delve into the performance monitoring and tuning aspects of individual components in more detail.)
It is also important to understand that performance tuning is an iterative process. You need to make the adjustments, measure the impact, and then perform an analysis before possibly making further adjustments, and so on. Due to the varying expectations of a performant system, there are no one-size-fits-all solutions that work well in every environment. Improving performance is a process of learning and testing. It is not unusual to obtain considerable performance gains by implementing certain settings or applying specific configurations. Though tuning the service infrastructure is not the only area that impacts performance, it is undoubtedly a key one.
Managing composite application lifecycles
A typical software development lifecycle is comprised of multiple phases such as requirement gathering, analysis, design, development, testing, and promotion. Within the Oracle SOA development lifecycle, deployment and runtime management tend to introduce certain complexities. The following screenshot shows a simple HelloWorld SOA composite application in Oracle JDeveloper 12c that is implemented using a BPEL component:
Figure 2: Developing a HelloWorld SOA application using BPEL in Oracle JDeveloper
As a SOA composite is being developed, it may reference an endpoint (effectively, a fully qualified URL) on a development server. This reference will need to change when the composite is promoted to higher environments such as test and production.
For example, your developers may have designed a SOA composite that processes payments by calling PayPal's API service. Naturally, they would be referencing PayPal's sandbox server (For example, https://api.sandbox.paypal.com/2.0) during development. What happens when this same SOA composite is deployed to production? How are these references automatically updated to utilize PayPal's production servers? How about timeout settings and other properties that differ from environment to environment?
Oracle SOA Suite 12c offers comprehensive lifecycle management features starting from development all through packaging, deployment, and post-deployment management:
- The ability to deploy multiple versions of a given composite application and specify a default version from either Oracle JDeveloper, Oracle Enterprise Manager Fusion Middleware Control, or Ant/WLST-based scripts.
- Oracle SOA Suite tooling allows you to make/compile your composite applications and export a deployable Service Archive (SAR).
A SAR is a deployment unit that describes the SOA composite application. The SAR packages service components, such as BPEL/BPMN processes, business rules, human tasks, and Mediator routing services in a single deployable application.
- Built-in capabilities to connect with versioning systems to version control your composite artifacts.
- Configuration plans that are composite-wide to customize environment-specific values, such as a web service URL that is different in the dev/test environment than in the actual production environment. With configuration plans, many runtime properties can be modified including:
- Schema references and imports
- Service endpoints in composite.xml
- Properties of referenced components such as adapters
- Attaching and detaching security policies to composite endpoints
Figure 3 illustrates how a developer IDE such as JDeveloper (top-left corner) is used to build and compile SOA composites that can eventually be packed and deployed as SAR files to the Oracle SOA Suite 12c infrastructure for execution. The composites along with their instances can be instantaneously managed and monitored from Oracle Enterprise Manager Fusion Middleware Control (bottom-left corner).
Figure 3: A typical Oracle SOA Suite 12c application lifecycle
Oracle Service Bus development is now integrated in Oracle JDeveloper 12c and no longer requires the separately installed Eclipse IDE for OSB development.
Understanding the Oracle Fusion Middleware landscape
Before examining Oracle SOA Suite 12c in more detail, it is important to understand where it lies within the application architecture framework.
Within the Oracle technology stack, Fusion Middleware lies between applications and backend infrastructures such as a database, an operating system, and hardware (refer to Figure 4). Applications such as Oracle E-Business Suite and Oracle Fusion Applications rely on numerous middleware components to serve several functions. The areas that Oracle Fusion Middleware is meant to address could include reporting. There may be single sign-on requirements. There could likely also be integration with other external applications.
Figure 4: Location of the Oracle Fusion Middleware stack within the environment architecture
Unfortunately, many technologists, including Oracle itself, sometimes refer to Oracle Fusion Middleware as a product when in fact it is a collection of software products of which Oracle SOA Suite is a part of. Just to reiterate, despite various press releases or blog post allusions, there is no product called Oracle Fusion Middleware.
Oracle Fusion Middleware encompasses products that service areas of business intelligence, identity management, content management, integration, and more. Products such as Oracle Business Intelligence Enterprise Edition (OBIEE), Oracle Access Manager (OAM), Oracle WebCenter Content, and Oracle SOA Suite are all designed to satisfy these various middleware needs, and all of these run on the core application server, Oracle WebLogic Server.
Oracle SOA Suite 12c is a middleware component of Oracle Fusion Middleware 12c and provides a set of infrastructure services to support SOA composite applications and Oracle Service Bus (OSB) services. Though this single product can satisfy the overwhelming majority of an organization's SOA needs, it is not the only integration product within the Oracle Fusion Middleware integration stack. Products such as Oracle API Manager, Oracle API Catalog, and Oracle API Gateway (OAG) cover the governance needs of SOA applications. Oracle SOA Core Extension (formerly known as the Oracle Application Integration Architecture Foundation Pack), an extension to Oracle SOA Suite, provides a framework that is intended to reduce development efforts through the inclusion of templates and methodologies. Tools such as Oracle Data Integrator (ODI) and Oracle GoldenGate are designed for bulk data transfers. And new tools to Oracle Fusion Middleware 12c are Oracle Managed File Transfer (MFT) and Oracle Enterprise Scheduler Service (ESS), which are designed to support file transfers and scheduling. The following figure shows Oracle SOA Suite 12c at the center of the Oracle Fusion Middleware integration product stack:
Figure 5: Oracle SOA Suite 12c at the crux of the Oracle Fusion Middleware integration product stack
Oracle SOA Suite 12c is the product of choice for most integration infrastructures, and as shown in Figure 5, it is the heart of the Oracle Fusion Middleware integration suite of products. It includes numerous subcomponents that include BPEL, Mediator, Service Bus, Business Activity Monitoring, B2B, Web Services Manager, and more. It is not uncommon for Oracle SOA Suite to be deployed and used in conjunction with some of the other integration products described earlier and depicted in Figure 5.
The Oracle SOA Suite 12c infrastructure stack
As mentioned earlier, Oracle SOA Suite 12c is a member of the Oracle Fusion Middleware family of products. Oracle has put in the efforts to make this stack robust, extensible, and agile, in part by including some of the best technologies available in the market. Instead of cobbling together enterprise solutions from disparate vendors and products, Oracle SOA Suite 12c provides you with a unified product suite to meet all of your SOA needs. This results in a single design-time experience, single runtime infrastructure, and end-to-end monitoring that greatly simplifies the building, maintenance, and monitoring of distributed SOA implementations. These components include:
- JDeveloper: This provides a design and development environment for software developers and architects, using Oracle SOA Suite 12c to create standards-based reusable enterprise software assets.
- Service components: These can be built as BPEL/BPMN processes, business rules and decision components, human tasks, events and mediators, or a combination thereof. They are the building blocks that are used to construct SOA composite applications. The service infrastructure, comprised of a unified platform for services, processes, and events, provides internal message transport infrastructure capabilities to connect service components and enable data flow. Service engines such as BPEL, Mediator, Human Workflow, Decision Service, and BPMN service engines, process messages received from the service infrastructure.
- OSB: This provides a framework for lightweight, scalable, and reliable service orchestration that is designed to connect, mediate, and manage the interaction between heterogeneous systems and services. It is widely adopted in all major SOA implementations and is used to transform protocols and messages between different components. Starting with the Oracle SOA Suite 12c release, OSB is built into the suite.
- Oracle BAM: This is used to build interactive real-time dashboards and proactive alerts in order to monitor business processes and services, giving business executives and operation managers the information they need to make better business decisions and take corrective actions if the business environment changes.
- Oracle B2B: This enables integration between trading partners using industry standard protocols, such as RossettaNet, Electronic Data Interchange (EDI), and so on, to provide a solution for establishing online collaborations and automated processes.
- Oracle Web Services Manager (OWSM): This is used to govern interactions with shared services through security and operational policy management and enforcement to ensure that the service reuse remains under control. Every Oracle SOA Suite 12c domain has this component built in by default to facilitate the management of web services.
- Oracle Enterprise Scheduler: This provides a scheduling capability to enterprise applications deployed on Oracle SOA Suite 12c. It supports many types of jobs including those based on Java, PL/SQL, and web services that can be used to offload larger transactions to run these jobs based on a schedule or automate the execution of maintenance work.
Other binding components and services that would require the knowledge and attention of the administrator include:
- Java EE Connector Architecture (JCA) adapters
- HTTP bindings
- REST services
- Enterprise Java Beans (EJB) services
- Direct binding services
- Application Development Framework (ADF) Business Component services
- Business events
- The User Messaging Server (UMS)
SOA composite applications can consist of a variety of components, binding components, references, and services, all of which can be administered from Oracle Enterprise Manager Fusion Middleware Control. A screenshot of Oracle Enterprise Manager Fusion Middleware Control 12c is shown here:
Figure 6: A screenshot of Oracle Enterprise Manager Fusion Middleware Control 12c
What differentiates Oracle SOA Suite 12c from other comparable products on the market is the consolidation of the stack into a unified service platform that translates to major user benefits. A Service Component Architecture (SCA), a maturing Organization for the Advancement of Structured Information Standards (OASIS), is the key enabler here. SCA enables you to manage versions and deploy components and metadata as a single unit. All artifacts are stored in a single repository, the Oracle Metadata Services (MDS). But, the story doesn't stop here; Oracle SOA Suite 12c also consolidates the runtime into a modular architecture of engines plugging into a common service infrastructure. And the engine consolidation naturally leads to a simplified monitoring infrastructure, still maintaining a vendor-neutral Java EE platform! All of this translates into numerous design time, runtime, and monitoring benefits, many of which we will explore throughout my blog.
New features of Oracle SOA Suite 12c
What are the benefits of upgrading from Oracle SOA Suite 11g to 12c? There are numerous, but from an administration standpoint, some of the desirable features introduced with 12c include:
- Built-in support for mobile integration. There are improved wizards and adapters that allow easier REST integration; developers can easily expose any reference or service as REST, and support for automated conversion from XML to JSON is now included.
- Cloud integration through newly published cloud adapters, wherein all nuances of interacting with third-party cloud services are handled by these adapters.
- New technology adapters such as the Lightweight Directory Access Protocol (LDAP) adapter and Coherence adapter.
- The Execution Context ID (ECID) now spans both OSB services and SOA composites, allowing for easier tracing of transactions across both technologies.
- Full Simple Object Access Protocol (SOAP) messages are displayed in the instance flow. The following screenshot gives you an example of how this is now viewed in 12c compared to 11g:
Figure 7: Oracle SOA Suite 12c now displays the full payload in the instance trace
- ESS is a powerful new scheduling component that is included in the suite at no extra cost.
There are too many new features to go through but an exhaustive list can be found in the following Oracle published whitepaper at this link.
In this article, we provided a snapshot of some of the important aspects of Oracle SOA Suite 12c administration and the capabilities that can be leveraged to effectively manage and monitor the SOA infrastructure.
To summarize this article's key takeaways:
- One of the main challenges of monitoring a SOA infrastructure is the need to obtain an end-to-end view of loosely coupled services that may span multiple disparate systems.
- Oracle SOA Suite 12c is a complete, integrated, best-of-breed, and hot-pluggable product set that helps to deliver robust, agile, and reliable SOA solutions.
- Oracle SOA Suite 12c is a member of the Oracle Fusion Middleware family of products.
- Oracle Enterprise Manager Fusion Middleware Control allows you to both manage and monitor all components and services within the Oracle SOA Suite 12c stack from a single web-based console.
- Oracle SOA Suite 12c includes many new features such as native support for REST, new cloud and technology adapters, and a new scheduling service.