Reuse in Oracle SOA Suite 12c: Templates, Libraries or Services?



Similar documents
Amplify Service Integration Developer Productivity with Oracle SOA Suite 12c

Who are We Specialized. Recognized. Preferred. The right partner makes all the difference.

SERVICE ORIENTED ARCHITECTURE

<Insert Picture Here> Integrating Oracle Forms and a Service Oriented Architecture

G-Cloud Framework. Service Definition. Oracle Fusion Middleware Design and Implementation

Oracle Service Bus: - When to use, where to use and when not to use

Continuous Integration For Fusion Middleware

What I Advise Every Customer To Do On Their Oracle SOA Projects

Oracle Application Development Framework Overview

1 What Are Web Services?

1 What Are Web Services?

Oracle Service Bus Examples and Tutorials

SOA MADE SIMPLE Introduction to SOA, (Micro) Services and SOA Suite INTRODUCTION WHAT IS SOA DEFINITION AGENDA

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

BUSINESS RULES CONCEPTS... 2 BUSINESS RULE ENGINE ARCHITECTURE By using the RETE Algorithm Benefits of RETE Algorithm...

WELCOME. Where and When should I use the Oracle Service Bus (OSB) Guido Schmutz. UKOUG Conference

Service Governance and Virtualization For SOA

The webmethods ESB. The Foundation of your SOA. Jean-Michel Ghyoot, Principal Solution Architect, March 28, 2013

SOA Success is Not a Matter of Luck

Oracle SOA Suite: The Evaluation from 10g to 11g

E-Business Suite Oracle SOA Suite Integration Options

Business Process Execution Language for Web Services

Meister Going Beyond Maven

Oracle Primavera Gateway

Reusing Existing * Java EE Applications from Oracle SOA Suite

Designing an Enterprise Application Framework for Service-Oriented Architecture 1

How To Develop A Web Service In A Microsoft J2Ee (Java) 2.5 (Oracle) 2-Year Old (Orcient) 2Dj (Oracles) 2E (Orca) 2Gj (J

Service Oriented Architecture

Oracle BIEE and SOA Integration : Step by Step. Mark Rittman, Director, Rittman Mead Consulting

Objectif. Participant. Prérequis. Pédagogie. Oracle SOA Suite 11g - Build Composite Applications. 5 Jours [35 Heures]

How To Create A C++ Web Service

The Oracle Fusion Development Platform

ORACLE MOBILE SUITE. Complete Mobile Development Solution. Cross Device Solution. Shared Services Infrastructure for Mobility

EBS SOA Integration Options

Service Mediation. The Role of an Enterprise Service Bus in an SOA

What You Need to Know About Transitioning to SOA

An Oracle White Paper October Maximize the Benefits of Oracle SOA Suite 11g with Oracle Service Bus

ORACLE SOA SUITE. Product Overview

Oracle SOA Suite Then and Now:


ORACLE WEBCENTER PORTAL

A standards-based approach to application integration

Oracle Service Bus. Situation. Oracle Service Bus Primer. Product History and Evolution. Positioning. Usage Scenario

Oracle SOA Suite 12c Implementation

ORACLE DATA INTEGRATOR ENTERPRISE EDITION

ActiveVOS Server Architecture. March 2009

SOACertifiedProfessional.Braindumps.S90-03A.v by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

White paper Why should I care about SOA?

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

Next-Generation ESB. Kevin Conner SOA Platform Architect, Red Hat Keith Babo JBoss ESB Project Lead, Red Hat. June 23rd, 2010

What is the NXTware Evolution Server Peter Marquez, Product Marketing ecube Systems

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

Approach to Service Management

Acknowledgments. p. 55

Service Oriented Architecture Case: IBM SOA Reference Architecture

Oracle Fusion Middleware

APAC WebLogic Suite Workshop Oracle Parcel Service Overview. Jeffrey West Application Grid Product Management

EBS - SOA Integration Options

An Oracle White Paper February Schneider National Implements Next - Generation IT Infrastructure

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

Semarchy Convergence for Data Integration The Data Integration Platform for Evolutionary MDM

How Oracle MAF & Oracle Mobile Cloud can Accelerate Mobile App Development

JD Edwards EnterpriseOne Mobile Solutions

Oracle Data Integrator 11g New Features & OBIEE Integration. Presented by: Arun K. Chaturvedi Business Intelligence Consultant/Architect

BUILDING FLEXIBLE ENTERPRISE PROCESSES USING ORACLE BUSINESS RULES AND BPEL PROCESS MANAGER. An Oracle White Paper Jan 2005

Lecture 26 Enterprise Internet Computing 1. Enterprise computing 2. Enterprise Internet computing 3. Natures of enterprise computing 4.

Oracle WebLogic Server 11g: Administration Essentials

How To Develop An Org Cloud Based Powerware For An Onpremise Cloud Environment

TIBCO ActiveMatrix BPM SOA Concepts

SOA Fundamentals For Java Developers. Alexander Ulanov, System Architect Odessa, 30 September 2008

Management. Oracle Fusion Middleware. 11 g Architecture and. Oracle Press ORACLE. Stephen Lee Gangadhar Konduri. Mc Grauu Hill.

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

Analyses on functional capabilities of BizTalk Server, Oracle BPEL Process Manger and WebSphere Process Server for applications in Grid middleware

AIA Update Application Integration Today and Tomorrow

WebSphere ESB Best Practices

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

TIBCO ActiveMatrix Service Bus Concepts. Software Release September 2013

An Oracle White Paper March Guide to Implementing Application Integration Architecture on Oracle Service Bus

ORACLE APPLICATION EXPRESS 5.0

ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE WEBLOGIC SERVER STANDARD EDITION

Oracle SOA Suite 11g Oracle SOA Suite 11g HL7 Inbound Example

The Challenges in Real Life ESB Deployments

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

Federal Aviation Administration WMSCR SWIM. Presented to: Demonstration and Prototyping Information Exchange Briefing By: <WMSCR SWIM

ORACLE UNIVERSITY İSTANBUL EĞİTİM PROGRAMI

D83167 Oracle Data Integrator 12c: Integration and Administration

Advancing Integration Competency and Excellence with the WSO2 Integration Platform

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

SCA-based Enterprise Service Bus WebSphere ESB

Oracle Reference Architecture and Oracle Cloud

Implementing Web Services in Oracle Database Applications

AquaLogic ESB Design and Integration (3 Days)

Oracle SOA Suite 11g: Essential Concepts Student Guide

Transcription:

Reuse in Oracle SOA Suite 12c: Templates, Libraries or Services? Ronald van Luttikhuizen eproseed The Netherlands Keywords: Oracle, SOA Suite, Service Bus, 12c, Template, Pattern, Library, Microservice, Service, Subprocess, BPEL, Spring, Maven, Reuse, Framework Introduction Most people in IT agree: you want to reuse code, rather than type the same thing twice. Choosing the right type of reuse can greatly speed up your development, decrease maintenance efforts, and reduce the number of errors by eliminating similar code. Of course you can copy something, and reuse it that way. However, this is hard to do, especially if somebody changes the original code. In general, copying code is considered bad practice. In SOA Suite 12c there are several ways to reuse code. These options vary from project skeletons using Maven poms to composite templates and creating services. In this article we will explain the differences between a pattern, a library and a (micro) service and illustrate this with features from SOA Suite 12c. These Oracle SOA Suite 12c features will be explained with use cases. At the end of this session you will be familiar with the facilities that SOA Suite 12c offers for reuse and you will be better equipped to choose the appropriate reuse method (library, pattern or service). Patterns, Libraries and Services Typically you can reuse functionality or logic in three different ways: 1. Reuse of a general idea; this is often referred to as a pattern. 2. Design-time reuse of a component; this is often referred to as a library. 3. Runtime reuse of specific functionality; this is often referred to as a service. These types of reuse are not only applicable in software, but can also be applied in other areas of our life such as construction. Let s examine these three different types of reuse and apply this to housing. Patterns There are several patterns that we apply when building a house. For example, a house always has a roof to prevent that we and the furniture are getting wet. Another patterns has to do with the location of parts: houses often have a front door facing the street for easy access. These general patterns can be designed in different ways, as you can see in the picture below.

Illustration. 1: use of a pattern Every house in the picture has a different colour. Some have two stories, others are three story buildings, the interior is different, and so on. However, all these houses have a roof and a front entrance facing the street for easy access. The general ideas or patterns are reused for every house. Libraries (design-time reuse) When a contractor is building a set of houses, he might decide to order the garage doors from a single garage-door manufacturing company. These doors can all have the same design and functionality. It is built in a specific way and is built into every single house. When one door breaks, other people don t have that issue (unless it was badly built or designed of course) and people can take out the door and replace it with something else or give it a different colour. Illustration. 2: design-time reuse The doors are all the same at design time, but during the life cycle of the garages, the different garages can change the doors at a different pace and deviate from the original design. Services (runtime reuse) In a gated community, a gate is created to protect the residents from unwanted visitors and to guard the houses. The gate is shared by all residents. There is only one gate or one runtime instance for the entire community. If there is a problem with the gate, everybody has a problem. For example, if there are many people that want to go through the gate, there will be a line and waiting times. If we want to change the colour of the gate, all the residents will get the change at the same time. The gate is reused at runtime.

Illustration. 3: use of a service Patterns in software Apart from patterns in our daily lives, patterns are also very common in software. Grady Booch et. al. wrote a famous book: Design Patterns. They identified different types of patterns, well known to most people in the IT industry: Creational patterns, for example Factory; Structural patterns, for example Adapter and Composite; Behavioural patterns, for example Mediator and Publish-Subscribe; Concurrency pattern, for example Scheduler. A lot of these and other patterns are implemented in tooling. For example the patterns listed above are implemented in Oracle SOA Suite, literally. If you want to enforce the use of specific patterns, you can write rules and regulations (like housing regulations), or you can enforce them by using templates. Using patterns is good, but you should not go overboard with them. Some people feel that if you need to build a pattern yourself, it is sign that the tooling you use is lacking a feature. Apart from that, Incorrect or redundant use of patterns leads to complexity. For example having a Factory is more complex than just instantiating an object, so you should only use it when needed. Libraries (design-time reuse) in software Design-time reuse in software is accomplished by creating and using libraries. There are two types of libraries: 1. Built-in libraries, for example as part of the programming language library (java.util, java.math) or as part of the application server (JPA). 2. Manually added libraries. You can add a library to your own application or software that you build. These can be commercial libraries, open source libraries or your own domain-specific libraries. Services (runtime reuse) in software Services enable runtime reuse in software, they are like the gate in our gated community. Serviceorientation is an architectural style. You can read more about this in our book, SOA Made Simple. A variation on this theme are microservices. This is very nicely described by Martin Fowler in http://martinfowler.com/articles/microservices.html. The table below summarizes and shows the differences between the types of reuse we discussed: Pattern Library Service Reuse of a general idea Design-time reuse Runtime reuse Quickstart development Deploy with your solution every Deploy once for all consumers time Consumer is responsible for Shared responsibility for QoS Provider is responsible for QoS QoS Can be reapplied Can be upgraded Changes on service impact all consumers

SOA Suite 12c Oracle SOA Suite 12c supports all these concepts of reuse: Patterns are built-in the platform: Mediator, Scheduler, Adapters and so on. Besides these outof-the-box patterns it is also possible to enforce patterns you come up yourself by creating SOA Suite Templates and Pipeline Templates for Service Bus. Libraries are supported in two ways: you can create Service Component Templates or BPEL Templates and provide these as reusable design-time components or reuse libraries by wrapping them in a Spring component. Services are of course supported by SOA Suite: you can build (composite) services, call services and use Adapters to expose functionality as a service. In the next paragraphs we will take a closer look at these types of reuse that are supported by Oracle SOA Suite. Project quick start: Maven Maven provides a quick-start mechanism for generating the structure of SOA Composite and Service Bus applications and projects through so-called archetypes. Archetypes help to enforce naming conventions and folder structures. SOA Suite 12c introduced Maven-support for SOA Composite and Service Bus applications and projects, including the archetypes. Templates to implement patterns and create libraries Design time reuse and patterns are both implemented as templates in SOA Suite 12c. A particular pattern can be enforced by providing a standard structure or part of the implementation. For example, a standard way of logging messages can be captured in a template. Design can be reused by creating a template including implementation details. This template can then be imported and reused in your project. For example, you can create a template providing the implementation of a call to a specific database package in e-business Suite using the EBS or Database adapter. The templating-mechanism is provided by SOA Suite, the developer is responsible for creating and packaging the templates. Using libraries in your composite Apart from using templates to make a library of your component or BPEL scope, you can also warp Java code in a Spring component; Apart from using the Spring component you invoke Java code directly from BPEL using the embedded Java activity. In this case the JAR file or Java classes need to be copied to a specific extensions folder on the WebLogic Server that runs SOA Suite. Java libraries can also be used to implement custom XSLT functions that can be used from the design-time XSLT

Mapper in JDeveloper, and at runtime when executing XSLTs in your SOA Composites and Service Bus projects. Java libraries can of course also be deployed with other Java code and be reused in Web Services and Web Applications. SOA Suite can then call that functionality by referencing it. Runtime reuse SOA Suite itself is a platform dedicated to implementing, consuming and providing services. Using SOA Suite it is easy to both invoke (external) services at runtime as well as providing them to service consumers using a variety of supported interfaces such as REST/JSON, SOAP/XML, JMS, RMI, and so on. When it comes to reuse, SOA Suite 12c introduced the BPEL subprocesses feature to support internal reuse of BPEL snippets within SOA Composites. The session at DOAG will dive into all of these mechanisms for reuse in SOA Suite 12c. Summary We have seen that we can differentiate between the following types of reuse: patterns, libraries and services. The right choice for reuse depends on how specific the solution is and how specific the problem is. It differs per type of reuse what the responsibilities are for quality-of-service aspects and what impact updates have. Finally, the article discusses how SOA Suite 12c supports all these types of reuse. Type of reuse What is reused Support in SOA Suite 12c QoS Pattern General idea Maven Archetypes (template) SOA Suite Project Template Service Bus Pipeline Templates Consumer is responsible for QoS Library Design and code Java libraries in Spring component SOA Suite Templates (Component and Custom activity) Service Bus Pipeline Templates Service Runtime Create in Java, SOA Suite or PL/SQL Publish service on Service Bus Shared responsibility for QoS Provider is responsible for QoS Contact address: Ronald van Luttikhuizen eproseed Netherlands Agnes v Leeuwenberchstr 15 3515 AX Utrecht The Netherlands

Phone: +31(0)30-8080175 Email ronald.van.luttikhuizen@eproseed.com Internet: www.eproseed.com