Book Image

Implementing Oracle Integration Cloud Service

Book Image

Implementing Oracle Integration Cloud Service

Overview of this book

Discover how to use ICS to solve your integration needs with this Oracle Cloud book. Written by Oracle ACE Robert and ACE Associate Phil, you?ll learn how to deliver business value using ICS. ? The only guide to Integration Cloud Service on the market ? A comprehensive guide to building successful integrations on ICS ? Features practical examples and handy tools
Table of Contents (21 chapters)
Implementing Oracle Integration Cloud Service
Credits
Foreword
About the Authors
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Preface

As you are reading this, we can assume you will have some sense of what Oracle Integration Cloud Service (ICS) is; if you don't, then do not worry, as this book will guide you through the product and the underlying concepts. We start by putting ICS into context in terms of the rapidly growing cloud marketplace, and given that we are writing for the benefit of a broad audience, let's try to get a common understanding. As you probably know, enterprise cloud solutions can be roughly split into three layers: Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS). ICS fits into the broad band of PaaS, which itself is divided into many forms, but we will come back to that in a moment. IaaS services such as Amazon Web Services, Microsoft Azure, and Oracle IaaS are well understood–effectively, the provision of virtualized hardware and the idea is not that new. We just have cool new names and have developed the concept. If you were involved with websites 10 years ago, you would have talked about hosting using a third-party server on which you would have installed a chosen website tool or written something from scratch. The difference between then and now is primarily the hyperscales, the speed of provisioning, and the ability to provision as many servers as you need. SaaS, at the end of the scale, is essentially a full-blooded application that users may be able to configure to meet their specific needs, but fundamentally, there is no major development involved. Illustrations include commodity blogging solutions such as WordPress and enterprise-class capabilities such as Salesforce and Office 365.

PaaS differentiates itself from the top and the bottom tiers by the fact that the platform will give you a foundation far greater than just the operating system and network, but not a complete solution that is ready to configure and use. PaaS represents the cloud-based provision of the resources you would need to build a contemporary enterprise solution such as an empty database and an application container. To return to our IaaS analogy, if in setting up a hosted website you were given all the software preinstalled to then build the website (for example, a MySQL database and perhaps a CMS solution such as Drupal) and your provider took care of the patching and so on, of the software (that is, deployment of the latest software versions with new features, bug fixes, and security fixes for the O/S, MySQL, and Drupal), then you were buying into the idea of PaaS. The challenge in understanding is the vast breadth of functionality here – from almost SaaS-like offerings such as WordPress (which can be used to build whole websites) to cloud-hosted databases, which are only a bit more than IaaS. As a result of all the flavors of PaaS we talk about, the different areas of PaaS have developed their own terms to make them distinct from other PaaS offerings; for example, integration platforms have adopted the term of iPaaS (integration Platform as a Service), and cloud databases are referred to as DBaaS, and so on.

This fragmentation, as well as the desire for a similar acronym for all layers, has spawned the adoption of the expression XaaS—anything (or X) as a Service.

iPaaS can be commonly characterized in two flavors of products—the heavily technical solutions such as Oracle SOA Suite (known as SOA CS) and IBM's WebSphere Application Server on Cloud, along with the second type with graphical user interface-driven solutions in which ICS competes, which includes products such as MuleSoft, Dell Boomi, and SnapLogic. These more visual and often less technical tools can often draw on more consumer-like experiences, and you can trace the origins of this group of iPaaS solutions to consumer predecessors such as products in the form of solutions such as IFTTT (If This Then That – https://ifttt.com/) and Zapier (https://zapier.com), where you could set up in a fairly visual manner integrations like, when a favorite RSS feed posts something, you can get it to be tweeted by on your Twitter account by exploiting the APIs provided.

The difference between solutions such as IFTTT and iPaaS at the enterprise end of the spectrum is sophistication, capability, security, and reliability; that is, you expect enterprise solutions to be 24/7 resilient and very robust, not to mention, having a focus on connecting enterprise solutions such as Salesforce, Workday, Oracle Taleo, Office 365, and SuccessFactors. That said, as more social and collaborative platforms influence more and more of the workplace, we will see this line blur.

The last thing to keep in mind with our first iPaaS group is that these more technical products are typically cloud-enabled versions of their mature on-premises solutions. As mentioned previously, SOA CS is Oracle SOA Suite when deployed on-premises (with a few additional tools added to address the need to hide the platform considerations of the deploying SOA). The newer generation products, such as ICS, Boomi, and MuleSoft, are largely focused on a cloud delivery approach and cannot be deployed as on-premises solutions in the traditional manner (such as SOA Suite), although vendors such as Oracle are leading innovative thinking in this space.

Before we look at why ICS is a significant product in the iPaaS space, it is important to remember that you do not need to have acquired any other products from Oracle to use it. In simple terms, ICS can be used to integrate with any application/service if it complies with one of a number of supported standards or has an adaptor. The ability to offer adapters that simplify integration is going to be an area of growth and market differentiation.

Oracle has several distinct advantages in the marketplace that makes ICS a very significant player. Setting aside the arguments of Oracle's deep pockets, the factors you might consider are as follows:

  • Mature leading integration solutions that can be exploited to create a new feature rich tool. Even while Oracle had focused on on-premises solutions, they have had to build connectors to major cloud solutions such as Salesforce and Workday, and these are being ported to the cloud.

  • Oracle has a very large partner base and has created an ecosystem for partners, customers, and the wider community to build, sell, or donate their adaptors to work with ICS (and potentially for SOA CS and other parts of their PaaS offering).

  • ICS can be easily adopted by both its middleware (SOA Suite and so on) and customer base, as well as its applications customers (E-Business Suite, Seibel, Fusion applications, and so on).

  • Hyper-convergence means that Oracle owns solutions from microchips and other hardware all the way to SaaS, which in turn creates economies and optimizations as the hardware is tailored to provide optimal performance for the different product elements. It also allows Oracle to make market propositions the competition cannot, for example, protecting cloud services against attacks that exploit very low-level vulnerabilities because there is logic in the microprocessors to detect it.

  • You can buy full Oracle cloud stack and run on-premises and even have a financial model based upon cloud concepts such as compute utilization (not hardware and license cost) and some other major vendors as recognizing this idea as well.

  • If you are an Oracle customer, then your existing products will have the benefit of connectors that have been developed for Oracle's own products, making integration easier and simpler (something we will explore further in this book).

  • Oracle's portfolio has been broadened and is now exploiting open source initiatives far more quickly within the PaaS space with the arrival of Application Container Cloud Service (based on Docker), Kafka service, and Node.js. In many respects, this approach appears a lot like that of Red Hat in so far as they take versions of open source offerings and then make them sufficiently robust enough that they can offer a service with them. This is something that can be done in a cost-effective manner, as Oracle can drive the continued updates and patching rather than needing to offer long-term support agreements for on-premises solutions.

The last point here is worth exploring a little further. Oracle's application portfolio has grown through build as well as acquisition. This has meant Oracle has needed to have a story for making these products working together easily. This approach has changed over the years, starting when Oracle effectively owned multiple discrete products and having overtime brought the best of the different products together to form what is now known as Fusion applications. The Fusion applications are also the core of many of Oracle's SaaS solutions (and the foundation of Fusion applications is Fusion Middleware and is the basis of nearly all Oracle products today).

The following diagram illustrates how Oracle has evolved and enabled integration between the different portfolio offerings over the last decade to arrive at where they are today:

We can characterize the different periods and their approaches to integration along the following lines:

  • Oracle Products Period:

    • Completely discrete solutions with integration offered by middleware and licensed PIPs

    • Applications built on own technologies

    • Applications that effectively share nothing out-of-the-box

  • Oracle Fusion Applications Period:

    • Rebuilt applications using Fusion technology stack

    • Here, product features overlapped the best ideas, which were carried forward to the Fusion generation

    • Integration needs that were sought to be reduced by making data models more common and exploit Fusion integration mechanisms internally

  • Oracle Cloud Suites Period:

    • Grouping of related Fusion applications/components

    • Each cloud offering is now decoupled from other clouds—so, ICS is invoked by cloud solution event framework

    • The customer configures ICS to respond to Create, Read, Update, Delete (CRUD)-based services – interface data model mapping is kept easy through a recommendation engine populated with standard Oracle provided mappings

What this book covers

The book's goal is to illustrate the capabilities of ICS and how they can be applied. The book will introduce some concepts and technologies that will allow you to develop integrations not only quickly but in a way that means they are maintainable and extensible. The book will also help guide the reader as to where more information can be found, as a single volume can't cover every aspect of integration.

Chapter 1, Introducing the Concepts and Terminology, is an overview of the ideas and terms that anyone working with ICS and integration generally needs to have a basic handle on, and it also introduces common characteristics of integration with ICS.

Chapter 2, Integrating Our First Two Applications, is the first practical use of ICS, which will illustrate integrating two systems together.

Chapter 3Distribute Messages Using the Pub-Sub Model, reworks the integration demonstrated in the previous chapter to use the pub-sub model to help demonstrate the differences and benefits of the different approaches.

Chapter 4, Integrations between SaaS Applications, builds upon the ideas presented so far, explores how to integrate SaaS solutions, and shows how you can test your integration without affecting a live system.

Chapter 5Going Social with Twitter and Google, looks at how connecting social applications differ. As social capabilities become ever more important, how do you connect and authenticate against such services?

Chapter 6, Creating Complex Transformations, explains that simply connecting systems together and performing data mappings is only the beginning of integration. Often, integration will need to enrich the data from simple things like transforming different representations and beyond.

Chapter 7, Routing and Filtering, demonstrates how things can be done when you need rules to determine who will receive data.

Chapter 8, Publish and Subscribe with External Applications, takes the concept of subscribing to events a step further using other Oracle middleware capabilities.

Chapter 9, Managed File Transfer with Scheduling, looks at how some processes follow the older file-based integrations with ICS and the use of file transfer, because not all integrations are event-driven.

Chapter 10Advanced Orchestration with Branching and Asynchronous Flows, demonstrates the latest capabilities of ICS that include the ability to make parts of the integration asynchronous, so the process is not limited by the slowest part of an integration.

Chapter 11, Calling an On-Premises API, look at how ICS enables a cloud integration platform to work systems in different clouds or on-premises easily with forecasts for enterprises needing to run hybrid environments (that is, any combination of public, private, and normal on-premises solutions).

Chapter 12Are My Integrations Running Fine, and What If They Are Not?, examines how to determine if things are running well or not, and when they are not, how to diagnose problems because, in the ideal world, nothing ever fails, but the world is not perfect.

Chapter 13, Where Can I Go from Here?, presents the other resources that are available to you to further exploit ICS because, with everything presented so far, we have not distinguished between a live environment and a development environment.

How we have approached this book

The approach we have adopted with this book is worth explaining. If you read the section on the target audience you'll note that we're not aiming only at the developer community but at a wider potential user audience of ICS. To help us do this, we have set ourselves some parameters that will help you understand why things have been done a particular way:

  1. Using tools that the entire target audience can use and understand; so, nice integrated developer tools are not used for most of the book – there are a couple of areas where they are relevant, though.

  2. Not forcing the reader to buy lots of extra products to allow the majority of the examples to be exercised – this does mean that rather than real end systems, we use tools to allow us to pretend they exist. If you are a developer seeing this, you will recognize this as simply implementing the idea of mocking. We have used apiary and Mockable.io for this in the book. We will also make use of several different but well-known tools to demonstrate triggering of web services such as SoapUI, cURL, and Postman to help give a sense of the different choices, although we make strong use of SoapUI as it is a leading tool.

  3. Not getting caught up in any unnecessary complexities that can arise to ensure data can flow from A to B. All the examples should work from your home or work computer without needing to talk with your Internet provider or network manager about IP addresses.

  4. Trying to build the examples around a plausible idea that anyone could relate to. To achieve this, we have drawn on the idea of services that can be connected to the FlightAware API, which provides the ability to get events and query information relating to flights, airports, and air travel generally at one end and other systems at the other, for example, Salesforce or a Flight Progress notification. The example will only be a vehicle to help illustrate the product's utilization, though:

    • The FlightAware API can be found at https://uk.flightaware.com/commercial/flightxml/

    • The services we have used are not fully aligned with the FlightAware API to simplify the amount of effort in the reader implementing the examples

    • The simplification also enables us to focus on the parts that are central to explaining ICS and the ideas behind it (so not all elements are used in the example)

  5. Rather than explaining every step in each example, we have reduced the amount of explanation provided as certain activities need to be repeated, such as setting up connections.

  6. Conveying the ideas and concepts will always take priority of being puritan with best practices.

  7. ICS is a growing and maturing product—everything in this book will hold largely true for a few years—even if the occasional screen label changes or stylesheets get updated, the reader should understand what they are being shown as well as how.

What you need for this book

Beyond the use of ICS, we have taken the approach of utilizing additional services and tools that are free wherever possible. We will explain in more detail the different tools and services, but let's start by just introducing what is needed:

  • An Oracle Cloud account. A trial ICS account will be sufficient for most things (as long as you have tried everything in the book within the trial period obviously).

  • Free accounts with apiary (https://apiary.io/) and Mockable (https://www.mockable.io/). We will introduce these in more detail shortly.

  • A free edition of SoapUI (https://www.soapui.org/), as we will be using this to initiate many of our use cases. We also make use of Postman (https://www.getpostman.com/) as an alternate option, which can be retrieved freely.

  • To follow the book, it will be necessary to look at and make minor changes to the XML Schemas. The changes needed are simple enough that they can be done with a simple text editor, you would rather use your preferred development tool, such as JDeveloper. If you want to use JDeveloper, we would recommend adopting a 12.x version, which can be obtained from http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.html. There is, of course, the middle ground with tools such as Xsemmel (https://xsemmel.codeplex.com/) as an open source option, or the market-leading XMLSpy (http://www.altova.com/).

  • A copy of the schemas and related resources that go with this book. These can be found via the Packt website or via the author's own site at https://oracle-integration.cloud.

  • The CURL command-line tool to allow us to make simple calls to the ICS API (https://curl.haxx.se/).

  • VirtualBox is a freely available desktop style virtualization tool and is used to help quickly create an environment in which we can run the Oracle agent technology (https://www.virtualbox.org/).

Several of the chapters also make use of additional external services to demonstrate some of the features such as file-level integration and social web services. To demonstrate such capabilities, we have created accounts with the following services. To follow these chapters, you may wish to do them. The services are as follows:

This book is intended for web developers with no knowledge of WebStorm yet, but who are experienced in JavaScript, Node.js, HTML, and CSS, and reasonably familiar with frameworks such as AngularJS and Meteor.

Introduction to apiary

To be able to describe, work with, and simulate (mock) web services that use the REST paradigm (explained in Chapter 1, Introducing the Concepts and Terminology) easily and in a way that reflects the sort of integrations you are likely to build with ICS, we have chosen to use Apiary.io (although there are other services on the Internet that offer similar capabilities). We chose Apiary.io as Oracle are developing a closer relationship with apiary with other products, so it may be possible that Oracle will develop its ecosystem for ICS to further incorporate apiary in the future. Apiary also offers a pricing model that allows you to get started without any additional expenditure.

Introducing Mockable

Cloud services that offer support for SOAP mocking are limited, in part as REST is overtaking SOAP as a more popular way to provide web services and define them using definition syntaxes such as Blueprint and Swagger. We have adopted Mockable.io for this book – driven by its ease of use and simplicity and again free startup model.

Creating an instance of Integration Cloud Service

When you first start using ICS, you will use Oracle's cloud managed website, which will allow to select the service(s) that you want and configure users. In this book, we have deliberately chosen not to write about this process so that we can concentrate on the application of ICS, which generally will be of greater value to you, we believe. The process of managing users is relatively simple. In addition to this, both Oracle and their partners will surely assist any customers in managing environment setup as it is in their interests to see customers using their services successfully.

Who this book is for

This book seeks to support a broad range of readers ranging from Citizen Integrators to software architects and developers. This brings in the question – what is a Citizen Integrator? The term Citizen Integrator can be traced back to at least 2009 with Gartner (http://www.gartner.com/newsroom/id/1212813) as a variation on the idea of Citizen Developer. Gartner proposes and we are now seeing the idea that you no longer need to be a technologist to be able to integrate solutions. A Citizen Integrator can be characterized as anyone who can as easily be part of an organizations, business community as much as the IT part of a business. These individuals will have a level of technical appreciation, and will certainly understand the semantics of the data being exposed. For example, a business analyst is as likely to use ICS to build integrations as an IT specialist.

Conventions

In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning.

Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "An XSLT style sheet is an XML document containing the root node <xsl:stylesheet>, which is declared by the xsl prefix and is mandatory."

A block of code is set as follows:

<html>
  <body>
    LET $book := doc("bookstore.xml")/book
    FOR $ch in $book/chapter
    WHERE $book/chapter/num < 10
    ORDER BY $ch/pagecount DESC
    RETURN <h2>{ $ch/title }</h2>
  </body>
</html>

Any command-line input or output is written as follows:

curl –u username:password –H "HTTP header attribute settings inquotes" -X HTTP operation e.g. GET target URL

New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: "Besides the home page, all the functions are part of the Designer Portal."

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book – what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of. To send us general feedback, simply e-mail [email protected], and mention the book's title in the subject of your message. If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the example code

To complete the integrations, it will be necessary to download the schemas and WSDLs from the Packt site or the author's site at https://www.oracle-integration.cloud. You may also want to download the exported implementations from the different chapters which will also be available that these sites.

The XSDs, WSDLs, and related artifacts have not been written to reflect best practice (such as separating the WSDL and XSD content) but to provide the material in a form that keeps the content simple and easy to follow as our goal in the book is about mastering ICS, rather than best practices for web standards.

You can download the example code files for this book from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

You can download the code files by following these steps:

  1. Log in or register to our website using your e-mail address and password.

  2. Hover the mouse pointer on the SUPPORT tab at the top.

  3. Click on Code Downloads & Errata.

  4. Enter the name of the book in the Search box.

  5. Select the book for which you're looking to download the code files.

  6. Choose from the drop-down menu where you purchased this book from.

  7. Click on Code Download.

Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:

  • WinRAR / 7-Zip for Windows

  • Zipeg / iZip / UnRarX for Mac

  • 7-Zip / PeaZip for Linux

The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Implementing-Oracle-Integration-Cloud-Service. We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Downloading the color images of this book

We also provide you with a PDF file that has color images of the screenshots/diagrams used in this book. The color images will help you better understand the changes in the output. You can download this file from https://www.packtpub.com/sites/default/files/downloads/ImplementingOracleIntegrationCloudService_ColorImages.pdf.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.

To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata section.

Piracy

Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at [email protected] with a link to the suspected pirated material.

We appreciate your help in protecting our authors and our ability to bring you valuable content.

Questions

If you have a problem with any aspect of this book, you can contact us at [email protected], and we will do our best to address the problem.