Implementing Oracle Integration Cloud Service - Robert van Molken - E-Book

Implementing Oracle Integration Cloud Service E-Book

Robert van Molken

0,0
46,79 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Understand everything you need to know about Oracle's Integration Cloud Service and how to utilize it optimally for your business

About This Book

  • The only guide to Integration Cloud Service in the market
  • Focused on practical action to deliver business value
  • A professional's guide to an expensive product, providing comprehensive training, and showing how to extract real business value from the product

Who This Book Is For

This book is ideal for any IT professional working with ICS, any Oracle application or cloud solution developer or analyst who wants to work with ICS to deliver business value.

What You Will Learn

  • Use ICS to integrate different systems together without needing to be a developer
  • Gain understanding of what a number of technologies and standards provide – without needing to understand the fine details of those standards and technologies
  • Understand the use of connectors that Oracle provide from technology based connections such as file and database connections to SaaS solutions ranging from Salesforce to Twitter
  • Enrich data and extend SaaS integration to route to different instances
  • Utilize a number of tools to help develop and check that your integrations work before connecting to live systems
  • Introduce and explain integration concepts so that the integrations created are maintainable and sustainable for the longer term
  • Provide details on how to keep up to date with the features that Oracle and partners provide in the future
  • Get special connections developed to work with ICS

In Detail

Businesses are built on data, and applications that access that data. In modern businesses the same cloud-based data stores and applications might be accessed by hundreds of different applications from thousands of different devices via APIs. To make this happen, APIs must be wired together i.e. integrated. Oracle Integration Cloud Service provides a complete method for integrating enterprise applications in the cloud. Integration Cloud Service (ICS) provides a cloud hosted means to integrate systems together using a graphical means to define and represent integrations.

This book will be a comprehensive, hands-on guide to building successful, high-availability integrations on ICS. This book sets out to demonstrate how ICS can be used to effectively implement integrations that work both in the cloud and on premise. It starts with a fast, practical introduction to what ICS can do for your business and then shows how ICS allows you to develop integrations not only quickly but in a way that means they are maintainable and extensible. Gradually it moves into more advanced integrations, showing how to achieve sophisticated results with ICS and work with external applications. Finally the book shows you how to monitor cloud apps and go beyond ICS to build even more powerful integrated applications.

By the end of the book, you will the knowledge on how to use ICS to solve your own integration needs and harness the technologies in a maintainable and sustainable manner.

Style and approach

This book will take a pragmatic approach and will be a business-focused guide to delivering business value with ICS.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 478

Veröffentlichungsjahr: 2017

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Implementing Oracle Integration Cloud Service
Credits
Foreword
About the Authors
Acknowledgement from both the authors
About the Reviewer
www.PacktPub.com
Why subscribe?
Customer Feedback
Preface
What this book covers
How we have approached this book
What you need for this book
Introduction to apiary
Introducing Mockable
Creating an instance of Integration Cloud Service
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. Introducing the Concepts and Terminology
Typical workflow and steps to execute
Connections define our integration points
SaaS adapters
What's the difference with native APIs?
Technology adapters
SOAP adapter
REST adapter
Resource examples
FTP adapter
On-premises adapters
What is the Connectivity Agent?
Architecture Guidelines
Architecture
Message Exchange Patterns
What is the Execution Agent?
Noticeable differences
Restrictions between connectivity and execution agent
Social and productivity adapters
Integrations
Point-to-point integration
Publish-subscribe integration
Topology
Advantages of pub-sub
Scalability
Loosely coupled
Disadvantages of pub-sub
Inflexibility of decoupling
Issues with message delivery
Content-based routing
Topology
Simple example architecture
Advantages of content-based routing
Very efficient
Sophisticated routing decisions
Disadvantages of content-based routing
Additional consumers
Sequential processing
Orchestration for complex integrations
Topology
Practical example
Advantages of Orchestration
Loosely coupled
Enables automation
Disadvantages of Orchestration
Transformation and lookups
Transformations
XQuery
XSLT
XPath expressions
XPath Examples
XLST constructs
Lookups
Summary
2. Integrating Our First Two Applications
Getting ready
Setting up apiary
Time to switch to integration cloud
Define the necessary connections
Inbound SOAP connection
Outbound REST connection
Troubleshooting
Integrate the two applications
Map message data
Completing and activating the integration
Testing the Integration
Invoke SOAP endpoint using SoapUI
Providing a valid WS-Security header
Invoking the integration for the first time
Monitoring the instance flow
Verifying the message processed by the backend
Summary
3. Distribute Messages Using the Pub-Sub Model
Getting ready
Setting up Mockable
Setting up SoapUI
Stage 1 - creating the direct connection integration
Defining the connections in ICS
Testing the integration
Stage 2 - reworking to use the pub-sub approach
Defining the publication service
Defining the subscription service
Running the test again
Stage 3 - adding a second subscriber
Setting up a second Mockable.io service
Setting up the subscriber integration
Running the test with two subscribers
Enhanced techniques
Multiple sources
Canonical data model pattern and normalizers
Summary
4. Integrations between SaaS Applications
Getting ready
Setting up Salesforce
Step 1 - get access to a Salesforce instance
Step 2 - generate the Enterprise service definition
Step 3 - obtain or reset your security token
Step 4 - create workflow rule for escalated cases
Step 5 - define outbound message and generate message WSDL
Setting up Twilio
Step 1 - get access to a Twilio account
Step 2 - create phone number for sending messages
Step 3 - add verified callers IDs
Step 4 - obtain live and/or test API credentials
Define the necessary connections
Troubleshooting
Integrate the SaaS applications
Map message data
Map Salesforce notifications to Twilio requests
Map Twilio's response to Salesforce's case comment
Map Twilio's fault to Salesforce's feed comment
Completing and activating the integration
Testing the integration
Troubleshooting
Next steps
Summary
5. Going Social with Twitter and Google
Tweet changes in flight schedules
Getting ready
Setting up Twitter
Step 1 - get access to a Twitter account
Step 2 - register a new application
Step 3 - create access token and obtain API credentials
Inbound WSDL with multiple operations
Define the necessary connections
Tweet when a flight schedule has changed
Map message data
Map FlightScheduleUpdate to Twitter's request
Map Twitter's response to ScheduleUpdateResult
Mapping Twitter's fault to BusinessFault
Completing and activating the integration
Testing the integration
Invoke cloud endpoint using SoapUI
Troubleshooting
Twitter rejects duplicate messages
No valid authentication token
No rights to write a tweet on the timeline
Send missing person report by e-mail
Getting ready
Setting up Google
Step 1 - get access to a Google account
Step 2 - register a new project and enable API
Step 3 - create access token and obtain API credentials
Define the necessary connections
E-mail the front desk to report a missing person
Map message data
Map MissingPersonReport to Google's sendMsg request
Map Google's response to MissingPersonResult
Map Twitter's fault to BusinessFault
Completing and activating the integration
Testing the integration
Invoking the Cloud endpoint using SoapUI
Troubleshooting
No valid client ID found
Use of Gmail API is disabled in Google's API Manager
Wrong scope defined for chosen operation
Summary
6. Creating Complex Transformations
Using variables to enrich messages
Preparation
Client connection
Creating the enriched mapping
Setting up SoapUI and Mockable
Mockable
SoapUI
Enrichment services
Preparation
Creating the connector
Creating the integration
Testing the enriched integration
Using lookups
Creating a lookup
Alternate lookup creation
Incorporating a lookup into a mapping
How to get function documentation
Executing the integration with a lookup
Summary
7. Routing and Filtering
Preparation
Creating connections
Creating a filtered integration
Applying a filter
Setting up Mockable
Testing the integration
Routing by Message Content
Creating the Routing Integration
Mapping the alternate route
Testing the routing
Extending the filter integration to use a REST source
Creating the trigger REST connection
Cloning the filter integration
Changing the invoke connector
Parameters
HTTP Headers and CORS
Configuring the Request
Reapplying mappings
Defining a multipart filter
Running the REST filter service
Summary
8. Publish and Subscribe with External Applications
Preparation
Overview of our Java application
Configuring ready to go
OMCS connection
Creating the integration
Configuring Trigger and Invoke
Connecting endpoints and tracking
Testing the integration
Summary
9. Managed File Transfer with Scheduling
Differences between File and FTP connectors
Scenario
Prerequisites
Setting up FTP locations
Creating the FTP connector
Creating the FTP to FTP integration
How to describe FTP file structure
Scheduling the integration
Using encryption
Common FTP use cases with Orchestration
Extra steps to define structure for file content
Calculated filenames
FTP integrations with interesting behaviors
Using FTP without a schema mapping in Orchestration
Implementing the single value mapping technique
Summary
10. Advanced Orchestration with Branching and Asynchronous Flows
Getting ready
Setting up Trello
Step 1 – Getting access to a Trello account
Step 2 – Creating a new board and tasks list
Step 3 – Obtaining a list identification
Step 4 – Obtaining API credentials
Updating the apiary Flight API
Step 1 – Log in to apiary and switch the API
Step 2 – Change the source of the API Blueprint
Defining the necessary connections
Checking if all connections are created
Building the orchestration
It uses a different UI and workflow
From simple to more advanced actions
Extracting data into simple variables
Branching the integration into multiple routes
Completing and activating the integration
Testing the orchestration
Invoke a cloud endpoint using SoapUI
Summary
11. Calling an On-Premises API
What kinds of agents exist?
When can an agent help?
Prerequisites and deploying an agent
Setting up and starting the VM
Checking everything is ready
Agent download
Creating the Agent Group
Installing the Connectivity Agent
Installing the Execution Agent
Differences between execution and connection agents
Upgrading your agent
Starting and stopping the Agent
Troubleshooting
Agent log files
The agent as a WebLogic container
Just start WebLogic
Sanity check the configuration
Building the integration
Preparation
Creating the integration
On-premises database connection
REST connection
Basic Map Data integration
Connecting endpoints and tracking
Testing the integration
Summary
12. Are My Integrations Running Fine, and What If They Are Not?
Core monitoring information
ICS - all is well
Dashboard
Inducing errors for integrations
Runtime health
Design time metrics
Looking at integrations
Agents view
Tracking view
Errors view
Advanced resolution
Things to check
Examining logs
Reporting incidents and downloading incidents information
Where to go for information about errors
System maintenance windows
Incorporating ICS monitoring into the enterprise
Administration
Certificate management
Changing log levels
E-mail reporting
Summary
13. Where Can I Go from Here?
Import and export
Import and export scenarios
Controlling change in a live environment
Configuration management
Common service deployment around the world
Pre-built integrations
Synchronizing lookup data
Complex editing and using developer tooling
Exporting and importing integrations
Individual export
Illustrating import and export
Individual import
Regeneration
Lookup export
Lookup import
Packaging
Package export and import
Alternate tools
ICS API
Getting and using cURL
Cloud adapters software development kit
Keeping up to date
Summary

Implementing Oracle Integration Cloud Service

Implementing Oracle Integration Cloud Service

Copyright © 2017 Packt

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: January 2017

Production reference: 1130117

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham 

B3 2PB, UK.

ISBN 978-1-78646-072-1

www.packtpub.com

Credits

Authors

Robert van Mölken

Phil Wilkins

Copy Editor

Safis Editing

Reviewer

Rolando Carrasco

Project Coordinator

Nidhi Joshi 

Commissioning Editor

David Barnes

Proofreader

Safis Editing

Acquisition Editor

Nitin Dasan 

Indexer

Aishwarya Gangawane 

Content Development Editor

Mayur Pawanikar

Graphics

Disha Haria

Technical Editor

Prasad Ramesh

Production Coordinator

Nilesh Mohite

Foreword

As the digital age embraces each of us, our businesses and the world around us, the importance of Software as a Service (SaaS), Cloud Integration, and API Management and is higher than ever before. Today, every business is not only expected to lead but also be able to pivot and flex to ride over disruptions or even disrupt age old industries themselves-be it banking, public sector, hospitality, music or any other, even the 300 year old taxi industry. Today businesses expect their IT to be agile and rapid enough to enable them to compete and lead in an environment where the next technology-led disruption is always just around the corner.

Enterprises, large, and small, are seeing rapid uptake of best of breed SaaS applications, often led not by the CIO or IT, but by the Line of Business (LOB) such as the HR manager, the sales VP or the marketing officer. SaaS bring unprecedented advantages of the cloud with rapid deployments, ease of use and huge savings in time and money. While SaaS undoubtedly brings these benefits, it doesn't take long for the LOB to realize the importance of their SaaS applications integrating with each other, with existing on-premises applications and with business processes across the enterprise – without this SaaS is nothing but silos as a service. This is where the rapid development and elevated user experience of the leading Integration Platform as a Service (iPaaS)-Oracle Integration Cloud Service (ICS) comes in.

In this book, Phil Wilkins and Robert van Mölken, take us through an exciting and insightful journey of how Oracle ICS solves exactly this crucial and urgent need that businesses face today – an iPaaS solution that complements your SaaS and on-premises application landscape allowing SaaS business users to rapidly build cloud and hybrid integrations, while allowing IT to have visibility of these integrations at design time and runtime, across the enterprise.

Phil and Robert, bring years of rich experience solving integration problems for market leading businesses across the globe. Through this book, they not only share their expertise of Oracle ICS through in-depth information on leveraging the service but also take us through an exciting journey weaving through various aspects of rapidly building cloud and on-premises integrations-simple as well as complex, multi-step orchestrations – leveraging tens of out of the box connectivity adapters and monitoring capabilities that Oracle ICS brings, for the SaaS user as well as IT. Phil and Robert, have not only shared when and how to use Oracle ICS for your business but have also articulated how to effectively solve modern business integration problems.

Your drive and expertise will always have the biggest impact on your IT and business, but I hope the knowledge you gain from this book of Oracle ICS enables you further to build the technical, architectural, and integration capabilities your business critically needs today, whether in the cloud, on-premises or both, to innovate and to future proof your business and IT.

Vikas Anand

Vice President, Product Management, Oracle Integration Platform Oracle Corporation

About the Authors

Robert van Mölken lives in Utrecht, the Netherlands, and is a Fusion Middleware specialist. He has over 9 years of experience in IT. Robert studied computer science at the University of Applied Sciences in Utrecht and received his BCS in 2007. Before his graduation, he started as a graphic designer and web developer, but soon shifted his focus to Fusion Middleware. His career started just before the release of Oracle SOA Suite 10gR3 and progressed heavily from there. Currently, Robert is one of the expertise leads on integration and cloud at AMIS. Before he started working at AMIS, he already had 4 years of experience in SOA Suite 10g and 11g. AMIS is specialized in most of the facets of the Oracle Red Stack and is an initiator of the Red Expert Alliance, a group of well-known Oracle partners. His main emphasis is on building service-oriented business processes using SOA Suite 12c, but lately his focus has shifted towards cloud and on-premise integrations, using Oracle's offerings and custom JEE solutions. Robert is a speaker at international conferences and is frequently on the AMIS Technology blog, the Oracle Technology Network, and OTN ArchBeat Podcasts. He is one of the two SOA/BPM SIG leads for the Dutch Oracle User Group (OGh) and organizes these meetups. He also works closely with the SOA Oracle Product Management team by participating in the Beta programs. In 2016, Robert was named Oracle ACE, promoted from ACE Associate, for SOA and middleware, because of these contributions. He served as a technical reviewer for the book Applied SOA Patterns on the Oracle Platform. It was published in 2014.

I would like to thank the people who have helped me over the years to shape my professional career. I'm most thankful of the people at AMIS who gave me the chances to excel in my career. Without them, I wouldn't have come this far. My utmost gratitude goes to my friends and family for their loving support in writing this book. And finally, a special thanks goes out to my coauthor, Phil Wilkins, for his efforts and hard work in making this title a reality.

Phil Wilkins has spent over 25 years in the software industry with a breadth of experience in different businesses and environments, from multinationals to software start-ups and customer organizations, including a global optical and auditory healthcare provider. He started out as a developer on real-time, mission-critical solutions and has worked his way up through technical and development leadership roles, primarily in Java-based environments. Phil now works for Capgemini, specializing in cloud integration and API technologies and more generally with Oracle technologies. Outside of his work commitments, he has contributed his technical capabilities to support others in a wide range of activities, from the development of local community websites to providing input and support to the development of technical books (particularly with Packt) and software ideas and businesses. He has also had a number of articles published in technical journals in his own right and is an active blogger. The journal contributions have been part of a wider commitment to the UK Oracle User Group (UKOUG), where Phil is also a member of the Middleware Special Interest Group Committee. He has been recognized as an Oracle ACE Associate. When not immersed in work and technology, he spends his time pursuing his passion for music and with his wife and two sons.

I would like to thank those who, over the years, have offered me opportunities, encouraged me, and supported me to reached the point where this book has become a reality. I would also like to thank my coauthor, Robert van Mölken, not only for his hard work but for also his passion and commitment that has taken an idea to a conclusion. Lastly, but most importantly to me, I would like to take this opportunity to thank my wife, Catherine, and our two sons, Christopher and Aaron, for their tolerance of the many hours I spent in front of a computer, not only on this project but also many that have preceded and those that will surely follow.

Acknowledgement from both the authors

We would like to thank the Oracle middleware team, particularly Ramkumar Menon, Yogesh Sontakke, and Jürgen Kress, who have been very supportive and engaging; they shared with us the details of the ICS Roadmap, providing access and an early glance of the product and answering the questions we posed.

We would also like to thank the Packt team, particularly David Barnes, who took the time to help us get this project up and running.

About the Reviewer

With a passion for system and application integration, Rolando Carrasco has spent most of his professional career working with customers to solve a common long-time problem: application integration. He started working with Hewlett Packard (Mexico) back in 2001, when he was in college. Even though his tenure with HP was short, as he realized very early that his professional career should be focused on Applications Integration. He started to implement integration solutions with JAVA, XML, Web Services, and EAI. He graduated with honors and was the best student of his batch (1997-2001). He studied in Mexico at Universidad Iberoamericana. The HP and Compaq fusion initiated a lot of changes in HP, so Rolando moved to Oracle, and that changed his professional career. At Oracle, he was always focused on the integration technology that Oracle had at that time; it was not as many products as today, but it was something to start with.

Then the Collaxa acquisition by Oracle happened, and that was the first step in this journey that turned Rolando into one of the most respected professionals in the Oracle SOA space for the Latin-American market. Rolando started to work with Oracle BPEL PM and had the opportunity to join the Oracle Product Management Team. He was the first PM for LAD in those days, covering Mexico to Brazil.

From 2005 to 2010, he was a Principal Product Manager for the Latin-American region and was the in charge the whole Fusion Middleware stack. Oracle acquired most of the components that are the foundation of the current Middleware offering: BEA, Thor, SUN, Oblix, Tangosol, and so on, at that time. Rolando had to be proficient in the whole stack, which was great challenge because of the extension of every product. All this kept Rolando very busy in the whole region and gave him the opportunity to work with the most important customers of the region. From Mexico to Argentina, Rolando collaborated with the different Oracle subsidiaries to promote the usage of Fusion Middleware.

Then in 2010 he joined S&P Solutions as an associate. S&P Solutions is one of the most important Oracle partners in the Latin-American region. In S&P, Rolando has had the opportunity to implement most of the Oracle Fusion Middleware stack, with the top companies in Mexico (telcos, financial institutions, retailers, manufacturing, and construction). Rolando is an Oracle ACE and is also one of the leaders of the ORAMEX Oracle Users Group in Mexico. He has a lot of articles and posts published on his blog, (http://oracleradio.blogspot.com/) as well as in the Oracle Technology Network for the Spanish speaking community.

Rolando wrote, back in 2015, the Oracle API Management 12c implementation book together with some other friends and colleagues, and this has been one of the greatest achievements in his career.

I would like to thank, first and foremost, my savior and lord Jesus Christ. Everything I do is to thank him and for him. I also thank my wife, Cristina, and my daughter, Constanza, as well as my parents, Rolando and Mercedes, and my brother, Manuel, for being my support. I would also like to thank my company, S&P Solutions, and my friends, in particular Paola, Erick, Ricardo, and Leonardo. I would also like to thank Robert van Mölken and Phil Wilkins, who are the authors of this book. I want to thank them for allowing me to be the technical reviewer. It was a very interesting and fun time to be reviewing all the chapters and sharing my thoughts with such a great Oracle professionals.

www.PacktPub.com

For support files and downloads related to your book, please visit www.PacktPub.com.

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.

https://www.packtpub.com/mapt

Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt books and video courses, as well as industry-leading tools to help you plan your personal development and advance your career.

Why subscribe?

Fully searchable across every book published by PacktCopy and paste, print, and bookmark contentOn demand and accessible via a web browser

Customer Feedback

Thank you for purchasing this Packt book. We take our commitment to improving our content and products to meet your needs seriously-that's why your feedback is so valuable. Whatever your feelings about your purchase, please consider leaving a review on this book's Amazon page. Not only will this help us, more importantly it will also help others in the community to make an informed decision about the resources that they invest in to learn. You can also review for us on a regular basis by joining our reviewers club. If you're interested in joining, or would like to learn more about the benefits we offer, please contact us: [email protected].

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 PIPsApplications built on own technologiesApplications that effectively share nothing out-of-the-box
Oracle Fusion Applications Period:
Rebuilt applications using Fusion technology stackHere, product features overlapped the best ideas, which were carried forward to the Fusion generationIntegration 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/componentsEach cloud offering is now decoupled from other clouds—so, ICS is invoked by cloud solution event frameworkThe 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 3, Distribute 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 5, Going 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 10, Advanced 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 12, Are 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:

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.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.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.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 examplesThe 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)
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.Conveying the ideas and concepts will always take priority of being puritan with best practices.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:

Google (https://console.developers.google.com/)Salesforce (https://developer.salesforce.com/)TimeDB (https://timezonedb.com)Twitter (https://dev.twitter.com/overview/api)Trello (https://trello.com/)Oracle Messaging Cloud Service (https://cloud.oracle.com/messaging)

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:

Log in or register to our website using your e-mail address and password.Hover the mouse pointer on the SUPPORT tab at the top.Click on Code Downloads & Errata.Enter the name of the book in the Search box.Select the book for which you're looking to download the code files.Choose from the drop-down menu where you purchased this book from.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 WindowsZipeg / iZip / UnRarX for Mac7-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.

Chapter 1. Introducing the Concepts and Terminology

This chapter gives us an overview of the concepts and terminology that apply when implementing integrations with Oracle Integration Cloud Service. It explains the components a general integration consists of, with a step-by-step approach.

When we talk about integration, we mean the act of bringing components together into one single system. In the context of IT, we refer to a process that stitches together different subsystems, so that the data contained in each system becomes part of a larger single system that can share data more quickly and easily.

Oracle Integration Cloud Service is a solution that enables you to simplify integrations between cloud applications, and between cloud and on-premises applications. It helps you create connections to well-known and less-known SaaS and PaaS applications, using the available cloud adapters, publish or subscribe to the Messaging Cloud Service, or use industry standards such as SOAP, REST, FTP, File, and JMS. Most of these technologies will be explained in more detail later. Integration Cloud Service (ICS) provides enterprise-grade connectivity regardless of the application you are connecting to or where they are hosted.

The concepts and terminology can be categorized into three major areas:

Connections describe the inbound and outbound applications that we are integrating withIntegrations describe how information is shared between applicationsTransformations and lookups describe how to interact with the data

We can engage with Oracle Cloud Services and especially with ICS by going to http://cloud.oracle.com/integration. Here we can try the service for free, which we can use when going through  this book.

Typical workflow and steps to execute

Before we dive deep into the major three areas, let's first take a look at the typical workflow when creating integrations with Oracle Integration Cloud Service. Since ICS is a cloud service, you only need to open a browser and enter the URL of your Cloud instance, for example: https://instancex-domainy.integration.us2.oraclecloud.com/ics.

We can sign into Oracle Integration Cloud Service by entering our credentials. Just like any Oracle Cloud Service users can be provisioned after subscribing to a service. After logging in we are welcomed by the home page:

The home page gives an overview of all major functionalities that ICS has to offer. On this page we can easily navigate to each of these functions or to the help pages to learn the details. Besides the home page, all the functions are part of the Designer Portal. We use the Designer Portal to create the five pillars of ICS: Integrations, Connections, Lookups, Packages, Agents and Adapters. We will discuss the pillars in the chapters to come, but we specifically address the agents in Chapter 11, Calling an On-Premises API and adapters in Chapter 13, Where Can I Go From Here?:

Let's investigate the most important pillars. Each integration starts with a blank canvas:

An integration always consists of a Trigger (source) and an Invoke (target). A Trigger means the connection where the integration receives the message from. An Invoke means the connection where the integration sends the message to. These two connections are the first two objectives before creating an integration.

In the following figure, both Trigger and Invoke connections use a SOAP connector. Just simply drag and drop the connection to use from the Connections panel onto the drop zone:

When integrating two applications with each other, it is likely that the data structure which the Trigger and Invoke applications understand is different. The next objective is to map the data between the two applications:

It depends on the type of connection pattern which mappings you can create. For example, when dealing with an asynchronous/one-way operation you only have a request mapping. When dealing with a synchronous operation you have both request and response mappings. The only time you can create a fault mapping is when both trigger and invoke connections define faults. For instance, in the preceding case where both WSDLs define a business fault in their specification.

For point-to-point integrations these are the objectives to reach. But if you are dealing with more complex integrations a typical workflow can consist of a few more objectives.

For instance, if the data received from the Trigger needs to be enriched (that is, locating and adding additional data based on data included in the message) before it can be sent to the Invoke. The next objective would be to add a call to an enrichment service. This enrichment service can be a different connector from your trigger or invoke:

An enrichment service can easily be added with a simple drag and drop of the connection. Another objective can be to route to a different target based on the source data:

All of these objectives are going to be discussed in detail, but first let's explore the concepts and terminology behind them.

Connections define our integration points

It all starts with creating connections. A connection defines the application you want to integrate with. If an application has a public API then ICS can integrate with it. For example, a well-known or lesser-known SaaS application, a public SOAP or REST API for weather or flight information, a custom application using the Messaging Service, or an on-premises Enterprise Resource Planning (ERP) application.

Oracle Integration Cloud Service comes with a large set of out-of-the-box Cloud adapters, to provide easy access to these applications. The amount of available adapters is constantly growing. Most of these adapters are built by Oracle, but through the marketplace it is also possible for customers and partners to build their own adapters.

Each connection can be used for inbound and outbound communication. The majority of available adapters support both ways. A connection commonly describes the type of application, the location of the API definition or endpoint, and the credentials needed to connect securely with the application.

Connections can be divided into four categories: SaaS adapters, Technology adapters, Social adapters, and on-premises adapters:

SaaS adapters

Oracle Integration Cloud Service offers a large collection of adapters to connect to SaaS applications natively. Software as a Service (SaaS), also called on-demand software, is software that is offered as a hosted service. SaaS applications are typically accessed by users using a browser, but most offer API's to access and modify the data or to send events to the SaaS application to perform a task. For the most popular SaaS vendors, Oracle supplies Cloud adapters that can be used by Integration Cloud Service. New adapters are released on monthly cycles. The SaaS adapters can also be developed by customers, partners, and even you.

Most SaaS applications that Oracle offers as the vendor have their own adapter in Integration Cloud Service, such as the ERP, HCM, and the Sales Cloud:

Besides that, ICS supports solutions such as Salesforce, Eloqua, and NetSuite out-of-the-box.

What's the difference with native APIs?

Because the SaaS application offers their API, you might wonder why a special adapter is necessary. The adapters offer a much more simplified experience through a powerful wizard. For example, the Oracle RightNow and Salesforce adapters support the automatic provisioning of Business Objects in the wizard. These adapters also handle security and provide standard error handling capabilities.

In Chapter 4, Integrations between SaaS Applications, we will integrate applications with some of these SaaS applications.

Technology adapters

Not all applications we see on a daily basis are SaaS applications with prebuilt adapters. Industry standards such as SOAP and REST are used by the majority of APIs. SOAP is mostly used for system-to-system integrations, whereas the lightweight REST protocol is used to provide access to mobile applications. For both protocols Oracle Integration Cloud Service provides an adapter.

SOAP adapter

Originally an acronym for Simple Object Access Protocol, SOAP is an industry standard protocol originated around 2000. This specification is used in the implementation of web services and describes exchanging structured information. The SOAP protocol uses XML as the markup language for its message format. SOAP itself is not a transport protocol, but relies on application layer protocols, such as HTTP and JMS.

Web services that are built to communicate using the SOAP protocol use the