Oracle API Platform Cloud Service – The Next-Gen API Management Platform

Nowadays APIs are omnipresent. In a world of intelligent Virtual assistants (a.k.a. Chatbots), like Google’s Alexa, and a “Connect everything”-mentality this is not surprising. In addition, APIs are essential building blocks of modern software applications build on top of new architectural patterns like Microservices. That’s the technical side.

From a corporate perspective, APIs provide the chance to create new digital business models and economies by exposing services and data to business partners and customers. The challenge: How to ensure Usability, Security, Transparency and Discoverability for the exposed APIs?

Design-Driven API Management

With API Platform Cloud Service (APIP CS), Oracle launched the next big thing today making their Platform as a Service (PaaS) offering even more complete.

APIP CS is a lightweight, cloud-native platform that is capable for covering the complete API Lifecycle from Planning to Retirement.

API_LIfecycle

Having an integration with Apiary.io, which was acquired by Oracle in the beginning of this year, the platform comes with a powerful API Design component and thus supports an API First approach, where API designers, API developers, architects and API consumer developers respectively App developers can consistently work collaboratively to create an appropriate API definition. This results in a consistent, intuitive API, driven by design.

Platform architecture

The picture below depicts the platform architecture of APIP CS (Graphic by Luis Weir, Capgemini):

APIPCS_Architecture_numbered

Besides Apiary (1) as the API Design Platform, the graphic depicts the other basic components of APIP CS, which are the Management Service (2) and the API Gateway component (3). For Identity and Access Management purposes APIP CS integrates with the Identity Cloud Service (IDCS), which can connect to different Corporate directories.

Apiary

As mentioned before Apiary is the API Design environment giving users with different responsibilities the chance to collaboratively work on new Business APIs, defining it in an API First style.

To support the API Lifecycle from the very first beginning, the Design phase, Apiary comes with an intuitive and easy-to-use browser-based UI, supporting API Blueprint and Swagger for describing APIs. In addition, Apiary provides Source Code Management System integration, e.g. with Github, to further collaboration and offers a Mock Server, so that App developers can directly work against newly defined APIs. This ensures short feedback cycles and furthers an efficient API delivery.

Management Service

The Management Service is the central heart of APIP CS and is used for implementing, managing and discovering APIs. It is a cloud-based component which “lives” in the Oracle Cloud. Out-of-the-box the Management Service provides two UIs: the Management Console and the Developer Portal.

The Management Console is the main tool for API Managers. Using the console, new API implementations can be created, deployed, managed and monitored. In addition, the API Manager can publish a documentation of the API to the Developer Portal. for which simply a link to Apiary can be created.

The Developer Portal is the main UI for App developers that can use the portal to discover the published APIs and to register applications for using those APIs for their app development. If no appropriate API could be found by the App developer, it potentially needs to be created.

Through it’s Platform APIs, the Management Service is customizable and extendable. Basically all functionalities, provided by the Management Portal or the Developer Portal can be also executed using the corresponding REST-based Platform APIs of the Management Service.

API Gateways

A Gateway is the component responsible for executing the Policies defined for the APIs at runtime. APIs are deployed to a Gateway node using either the Management Service or a REST API.

The Gateway as such is a standalone component which can be installed either to Oracle Cloud platform, 3rd party Clouds (Azure or Amazon) or On-Premise. A Gateway periodically reaches out to the Management Service to check for updated API implementations and to send analytics informations to the Management Service.

This “Hollywood”-style communication approach (“Don’t call us, we call you”), makes life much more easier, because there is no need for explicitly opening firewall ports per Gateway, since every Gateway does outbound calls to the Management Service and not the other way around.

Conclusion

Oracle APIP CS has a very strong and clear vision, how API Management should be done today – and how it should not be done, of course. It supports users to ensure Usability, Security, Transparency and Discoverability for the exposed APIs and convinces with it’s API First philosophy, is extendable as well as customizable.

From an User experience (UX) perspective, the implementation of APIs using the Management Console is intuitive and straight-forward; there’s no need for extensive training on how to implement APIs using APIP CS. The same is true for the Developer Portal and also for the Design platform Apiary.

From an infrastructure respectively architecture perspective, the hybrid deployment model of the API Gateway components, allows the creation of flexible, consistent and robust API-based architectures.

To make a long story short: APIP CS is a flexible, scalable and easy-to-use solution to thrive innovation by unleashing the power of APIs.

 

 

 

 

 

 

Oracle Code Berlin – Personal impressions from a surprisingly different conference

Monday the 24th of April, 3:15 a.m.: My alarm clocks rings me up – yes, this is of course brutally early! But it was necessary to catch my train from Cologne to Berlin, where the newly invented conference format “Oracle Code” opens the doors. With respect to these early hours, knowing that this will be a long day and not sure what to expect, I made my way to Berlin – and this was a very good invest!

The facts of Oracle Code 2017 in Berlin:

  • 350 attendees
  • More than 20 sessions covering relevant topics like
    • Micorservices
    • API Management
    • Chatbots
    • Docker
    • DevOps
    • Kafka
  • 2 Hands-On-Labs (Docker introduction and Oracle Bare Metal Cloud)
  • Experienced, international speakers

The focussed audience of this conference were developers and architects, so the focus of the conference presentation was on technology, real-world problems and solutions – no marketing, which was very welcomed! If you want to know more about the agenda: here we go.

Our contribution to the conference

My colleague Danilo Schmiedel and myself had two talks at the conference this time.

The first one was about “API Management and why it matters”. In this session we were presenting an internal project, where we’re currently working on breaking up a monolithic application, following modern architecture approaches and concepts, like Microservices, API Management and modern UI technologies. We showed to the audience how this looks like form an architectural perspective and focussed also on how the implementation is done.

In the second talk “Improve Your Cloud Integrations with Test-driven Development”, we were talking on how to establish a consistent DevOps in integration respectively cloud integration projects. We explained this based on experiences from customer projects and described why Test-Driven Development is also or especially important in (cloud) integration projects as well as how to support a DevOps approach using Oracle Developers Cloud Service.

Between the two presentations I was interviewed by Javed Mohammed from OTN, where we talked about different topics with reference to our sessions and about me current thoughts regarding relevant challenges to be solved with modern software architectures. The complete interview can be found here.

Wrap up

To make the story complete, I just wanted to mention that my Oracle Code journey ended yesterday at 11:30 p.m.

It was an exhausting, but very valuable conference day. I really enjoyed, to be part of this great conference. Great sessions, interesting topics, an interesting audience and also a great finale, since there was beer and pizza at the party afterwards!

Thanks to the organization team for this wonderful event – I will definitely come back next time!

Chatbots, Cloud and beyond – Impressions about the PaaS Forum in Split

The yearly PaaS Forum should be a fix appointment in every Oracle-focussed IT Specialist. Why do I think that? Here are some reasons:

  • Get aligned with the newest products, features and roadmap information regarding Orcale’s massively growing Cloud offering
  • Get into touch with Oracle Product Management, Architects from the A-Team and leading experts from diverse Oracle Partners
  • Use the productive atmosphere at beautiful locations to network and talk about the newest trends and challenges in the IT market

This year the conference took place in Split at the beautiful Croatian coast in an excellent hotel; ideal settings for a productive and valuable working atmosphere.

The topics of the conference were all related to the Oracle Cloud Platform and insights into the roadmap as well as the strategy and where things are heading to. The key aspects of that will be briefly covered in the following.

Chatbots awakens

It sounds a little more scary than it really is; we will not run into a Terminator-like Skynet vision! But, it’s fact that chatbots seems to become more and more relevant, even for the business world.

In the consumer area chatbots are commodity. Intelligent asssitents like Siri or Alexa are helping us to organize daily work. Companies can also leverage from that. With today’s technologies the creation of those virtual assistants is possible in a quite easy way.

Key to be successful is to train the bot to identify the intent of the conversation partner, so that it can provide an appropriate answer. Since natural language is not that easy and straight-forward this can be challenging, because the bot also needs to know about synonyms, etc. In addition, a chatbot must be enabled to be self-learning, which is supported throug Machine Learning algorithms.

With their Chatbots Development Platform, Oracle allows the implementation of those virtual assistants. With Facebook as a strong cooperation partner in this space, Oracle seems to be well prepared to be at top, when the broad business adoption of chatbots begins.

APIs as a key enabler for new business models

APIs are doors to an enterprises data, services and processes, which might be exposed to the outbound world. Those APIs need to be managed to allow the definition of security, thread protection and throttling. In addition, things like API usage monitoring and monetization are also very important since a consistent API management approach is a key enabler for new business models.

With Oracle API Platform Cloud Service (APIP CS), which will come out soon, Oracle addresses the needs for implementing a consistent API Management approach, which covers the full API lifecycle from design over implementation to deployment, monitoring and management. The acquisition of Apiary, which covers the full API design lifecycle, makes the platform even more complete. You should definetly keep an eye on this upcoming product.

Integration is not dead yet

The basis for adopting new concepts, like for example IoT, are integrated enterprise systems. Even if integration as such is not as sexy as chatbots, since it purely happens in the background without user interaction, it is essential for keeping backend systems into sync with each other and for supporting concepts like a harmonized data model.

With Integration Cloud Service (ICS) and SOA Cloud Service (SOA CS) Oracle provides a first class integration offering, which enables the implementation of hybrid integration architectures. Those architectures are relevant to support companies on their way to the Cloud.

Containerization as basis for flexible architectures

Markets are very dynamically today, which causes companies to react on that. Furthermore technology is also evolving faster. To keep up with that, an ability to change mindset is needed throughout an organization. This means the business side as well as the IT. Therefore applications, which depict business capabilities, need to be changeable in an appropriate amount of time, without disturbing the business continuity.

With the Oracle Cloud Platform it is possible to create applications in a Microservice architectural style, by using Servics like Application Container Cloud Service (ACCS) or Container Cloud Service (CCS). A broad palette of technologies is supported by ACCS and CCS, applications can be scaled out at runtime and containers can be orchestrated, which makes the solutions even more powerful and flexible. To support flexibility agility a complete DevOps approach can be established by leveraging Oracle Developers Cloud Service’s collaboration and development features.

With that services, Oracle provides a very consistent approach to develop next gen applications and services, adressing the volatility of markets, business requirements and technologies.

Human-centric business workflows

Depicting human-centric workflows can be done Process Cloud Service (PCS) that’s nothing new. With PCS straight-forward workflows can be expressed using BPMN. But when business processes have a more dynamic character, it will be difficult to address those with BPMN.

For depicting dynamic business processes Adaptive Case Management (ACM) is needed. This was already part of Oracle BPM 12c and now will also become part of PCS. This is great and makes even more valuable for businesses, since with that capability the platform provides the basis for Enterprise decision modeling and Human-centric business workflows.

ACE world record in integrating Cloud Services

From the ACE team a showcase was delivered showing the integration of 15 (!) different Cloud Services in a Showcase in which a Voting Platform, for this years Open World music act, was created.

The team lead by Lucas Jellema showed impressingly how different Oracle Cloud Services (DevCS, APIP CS, PCS, ICS, SOA CS, ACCS, CCS,…) can be combined and integrated with each other to depict a Cloud native application.

The ACE team consists of:

  • Lucas Jellama
  • Lonneke Dikmanns
  • Richard Olrichs
  • Danilo Schmiedel
  • Mark Simpson
  • Torsten Winterberg
  • Sven Bernhardt

It was good fun and also very experiencing, being part of this great team.

Conclusion

It was again a great conference, which I personally left totally inspired with new ideas, taken from the spirit of the conference. Good to see that Oracle is making their way in the Cloud space consistently and is taking the partners with them on this journey. It is essential to build up knowledge in this space, since there seems to be lack of knowledge in the market; homework for us as partners!

Special thanks to Jürgen Kress for building up such a great and powerful community of friends!

 

 

Oracle SB12c QuickTip: Fix HTTP 403 on calling SOAP/REST Proxy Services

A few days ago, I faced a strange behaviour when I tried to test SOAP and REST services deployed to a fresh SOA Suite 12c (12.2.1.1) installation. Using SOAP UI for testing the services always gave me an response in a HTML format, which says ” Error 403 Forbidden”, like it is displayed in the screenshot below:

screen-shot-2017-01-29-at-15-04-03Going through all log files of the corresponding Managed Server, where Servicebus was installed to, I didn’t find any hint that even the request was delivered to the servers. The requests simply had no footprint in the access.log or the server’s diagnostics.log – which seemed to be very strange to me. Assuming that the behaviour might have been something to do with the security policies applied to the services, I disabled all security policies as a next step – without any success.

After testing the services successfully in another environment, it was quite clear to me that something was wrong with the domain setup and after some investigations, I found the root cause for the “Error 403 Forbidden” message: Using the deployments view in Weblogic Console, I noticed that “API Manager Starter Application” was targeted to the Servicebus Cluster. Like described in MOS Note 2087277.1, I un-targeted this application from the Cluster, restarted the corresponding Managed Servers and afterwards, I was able to test the services without receiving the mentioned exception. Like the MOS note described this behaviour might happen, if the wrong Template (Oracle API Manager Template) is chosen for Servicebus, when setting up a domain.

Since it took me some time to understand the behaviour and to fix it accordingly, I hope this short post will preserve you from running into the same issue.

OTN Appreciation Day : Integration Cloud Service (ICS) On-Premises Connectivity Agent

The notion for Cloud adoption is stepping forward and companies start thinking of how they can improve their businesses by moving applications, platforms or even their infrastructure to the Cloud. The goal: Create new, innovative business models to distinguish from competitors.

Oracle ICS is an Integration Platform as a Service (IPaaS), which supports enterprises to overcome integration challenges, while moving their business to the Cloud. You can learn more on the use cases for ICS in my latest OTN article.

One feature, which is from my point of view especially important and valuable, is the Oracle ICS On-Premises Connectivity Agent. This software component is essential to simplify Cloud adoption for enterprises since it con be used to easily integrate Cloud and On-Premise applications with each other.

agentbig

The agent’s software can directly be downloaded from Oracle ICS and has to be installed behind the firewall and needs to be registered with an ICS instance. The installation procedure is straight-forward and done within a few minutes. The agent manages the communication between ICS and the On-Premise applications. Since the agent initiates the communication with ICS using standard protocols and ports (HTTPS on port 443), there is no need to open specific ports in the firewall! This is really beneficial and makes the implementation of On-Premise to Cloud integrations even more efficient, because exhausting discussions regarding security exceptions with the security officers are a thing of the past.

This is why I really like this feature of Oracle ICS. For more information regarding installation and usage of the On-Premise Connectivity Agent, you can refer to the aforementioned OTN article. In addition, further information can also be found in blogs from Robert van Mölken and the Oracle A-Team.

OOW 16: My thoughts and experiences

Oracle Open World 2016 is over and it’s time to take at least two steps back. Why at least? You’ll know it, if you read through this article.

To briefly summarize it upfront: It was again a great event! There was an amazing and, at the same time, special spirit around, which attendees were able to feel and which was contagious – that’s my view, because before Open World I felt a little uncomfortable. I wasn’t sure about the general direction, where Oracle is heading regarding different Cloud topics; the overall strategy was not 100% clear to me. I had some open questions and uncertainties, which were answered respectively clarified during the conference. This makes me much more confident for the future and gives me in addition new ideas for my daily work, which of course will not become easier with the knowledge I gained at the conference. But this simultaneously makes my job attractive and exiting.

Infrastructure as a Service (IaaS) – The new focus

If you look at the figures in Oracle’s business summary for fiscal year 2016, it is really impressive what happened there. The revenue, just for the Cloud business, was at 1 Billion dollar!

Cloud Business Figures 2016

The good news, although this is not a secret, Oracle will keep going with investing in their Cloud business. As it can be seen from the picture above there is still room for improvement, since most of this revenue is coming from the SaaS and PaaS area.

“Now we are aggressively moving to infrastructure. We have a new generation that we are running around the world”, Oracle Executive Chairman and CTO Larry Ellison  

The new thing is that a large part of the investments will be especially done in the Infrastructure as a Service (IaaS) area, the Gen2 IaaS offerings, – I personally wasn’t aware of this. But doing so is just the logical next step, because a robust and reliable IaaS platform is key for growing the PaaS and also the SaaS business! This also converges with Larry Ellison’s statement, who said in one of his Keynotes: “IaaS represents a huge new opportunity for Oracle to layer on top of our rapidly growing SaaS and PaaS businesses”.

With this move, Oracle is approaching their main Cloud Competitors, like Amazon and Microsoft even more aggressive. So it will become hard times for them, since Oracle is even cheaper and faster than Amazon – the only thing you need to do is that you must be willing to pay 20% less, as Larry Ellison mentioned.

Oracle Gen2 IaaS vs. AWS

A further key differentiator for Oracle’s IaaS Cloud business are Bare Metal servers, which were announced during the conference. Bare Metal is a physical appliance optimized for high performance, without the need for virtualization. It is able to handle any workload, on any operating system and hypervisor – another piece of the Cloud puzzle. In addition Oracle is also working on the availability by providing cross-datacenter HA. All in all, these are  interesting steps in the right direction!

Further investments in PaaS offerings to delivery “One consistent Platform”

Also in the areas of PaaS Oracle listed a singificant growth. Starting with 12 Cloud Services in Q1 2016, Oracle finally ended up with over 50(!) Cloud Services by Q4 2016. This is a very impressive increase in only one year, but also a huge challenge for Oracle to make comprehensible offerings to customers, since some of the Cloud services have overlapping functionalities. One big advantage of the Oracle PaaS offering: it is one complete platform that covers different areas, like for example Integration or Big Data, and which can be managed and monitored consistently.

img_5368

To survive in this “jungle” of Cloud Services, customers need some guidance to choose the right combination of Cloud Services to address a specific business need. From a partner’s perspective, it is important to guide customers and to help them to find the right combination of Cloud Services – that’s blessing and curse. Oracle is already aware of that and will shortly introduce so called Suites, which will contain a useful combination of services, aiming to cover specific use cases.

In addition, there were some announcements regarding new PaaS services respectively the enhancement of existing ones. Highlights here were:

  • New: API Platform Cloud Service
    • Consistent Enterprise API Management platform
    • Supports API First Design
  • New: Analytics Cloud Service
    • Visualize any data on any device
    • No need for specific implementation skills
    • Great connectivity (40+ connectors)
  • New: Data Integration Cloud Service
    • Data Warehouse and analytics
    • Repliaction, ETL/ELT and Data quality
  • New: Dataflow Machine Learning Cloud Service
    • 0-Code GUI
    • Leverages from Open Standards, like Apache Spark and Kafka
  • New: Big Data Discovery Cloud Service
    • Visualize and discover hidden values in data
    • Transform huge amount of data to business insights
    • Process data using Apache Spark
  • New: Content and Experience Cloud Service
    • Digital asset management and mobile collaboration (Multi channel)
    • Consistent brand experience across channels
  • New: Virtual Assistance (Chatbot) Platform
    • Contextual conversations with intelligent virtual assistant
    • Integration with Facebook Messenger, Slack and others
  • New: Identity Cloud Service
    • Central Identity Management Platform
    • Can be used to align OnPrem and Cloud Identity Stores
  • New: Management Cloud Service
    • APM capabilities
    • Centralized Logging

Furthermore there were announcements regarding enhancements of the already existing Cloud Services, like Integration Cloud Service (ICS), which is further improvement by adding new connectors and also adding new capabilities for defining integrations. So the existing Cloud Services are becoming also more and more mature, which is good to see.

Oracle Cloud Platform – Migrate, Extend and Modernize

Oracle’s claim is to provide a complete  Cloud offering that supports the easy migration of existing applications to the Cloud, the development of Cloud Native apps in common technologies like Java or Node.js and the creation of new applications leveraging from the functionalities from the PaaS offerings.

Regarding the migration, Oracle’s  intention is to make it as easy as possible for customers to move their applications to the Cloud by just hitting a button, which furthers the Cloud adoption – Lift ‘n Shift is the magic word these days.To flesh this out, Oracle acquired Ravello Systems. With Ravello it is easily possible to move complete existing VMware images to the Public Cloud. This works seamless by just hitting a button, without any furthers efforts.

In addition, Oracle provides Container Cloud Services to build Cloud Native apps, like Application Container Cloud Service (ACCS), to allow customers to easy shift existing Java, Node.js or even PHP applications to the Cloud. With Developers Cloud Service (DevCS), Oracle also provides a Cloud development platform that covers basic DevOps capabilities, like Source Code management, Build automation, Issue Tracking, Wiki and more.

To infinity and far beyond…

To make a long story short. Oracle’s Cloud offering reaches the next level of maturity, even though there is still a way to go! The great advantage of Oracle with respect to the competitors is that they have an integrated approach built upon the three pillows: IaaS, PaaS and SaaS.

img_5388

It is interesting to see that Oracle is doing a huge shift of it’s core business; away from a leader for on-premise Platforms and Solutions and over to a pure Cloud company. This takes some time and also is challenging, from a organizational as well as from a technical perspective. The exciting thing is that we can learn a lot from this, because similar things has to be taken into account while defining a long-term Cloud strategy!

Even if Oracle seems to be late in the Cloud market and is now maybe not as mature as for example Amazon, they have a consistent and comprehensive vision. And although some people think that this is a disadvantage, from my point of view this might be a potential advantage form a long term perspective. Because as we’ve already seen in the past, learning from the pioneers in a specific area is not the worst thing.

 

 

Designing the digital enterprise: Cloud2On-Prem integrations using Oracle ICS

Integrating distributed systems with each other has been a challenge for many years. In the context of digital transformation, companies are using more and more Software as a Service (SaaS) applications to address standard processes, so that they can focus on improving and evolving the core business.

Since those use cases become more common, me and two of my colleagues – Alexander Däubler and Cornelia Spanner – wrote an OTN article that is based on a real world Proof-of-Concept (PoC) implementation. In this particular PoC, a on-premise SAP solution needs to be integrated with Salesforce.com (SFDC). As integration platform, we choose Oracle Integration Cloud Service (ICS) to implement the integration.

If you want to learn more on that, just checkout the article available on OTN.

Demystifying API Management: Concepts and Demarcations

Digital transformation is on it’s way and the industry is required to adopt the new concepts and techniques, like the Internet of things (IoT), Cloud and Enterprise Mobility. Due to the chances provided by that, new business models arise, which need to be evaluated by company’s to not lose valuable market shares and to stay in touch with the competitors. One topic, which is essential and thus is a key enabler in the context of a successful digital transformation strategy, is API management.

Why that?

To be able to keep up with competitors from a long-time perspective, companies need to focus on their core business. As a result of the progressive digitalization, the value of information will become more and more important for businesses; information will become the new currency! Since companies start focussing on their core business, external services are used in the context of information gather, which are e.g. needed to support business decisions. To guarantee a consistent and secure exchange of data over corporate boundaries, stable and robust APIs are needed. To manage those APIs is one key area of an API management approach.
At this point an experienced developer would say: “Stop! We are using and developing APIs for years now, why should there be any new challenges today?”. Good point! But when digging deeper and asking questions about what managing an API means, the answer is usually closely related to API lifecycle management. It’s an important topic that’s for sure, but API Management in today’s digital business is much more than that and this is what I want to outline within this blog post.

API Management

To make it clear from the beginning: API management is not just introducing a tool respectively a piece of software. It is also not just versioning and documentation of an API. API Management is a complex discipline, which needs a proper, long-term strategic planning. Oracle ACE Director Luis Weir gives a very good definition, on what API management really is about:
API Management is the discipline that governs the development cycle of APIs, defining the tools and processes needed to build, publish, and operate, also including management development communities around them. (https://goo.gl/uKiUoy)
 
According to this definition, API Management has different flavours, from which API Lifecycle management and API Security respectively API Gateway are only two. In today’s digital business, there is also a need for API Analysis, to allow complete usage tracking which is important regarding a later monetization for external as well as internal API consumers. In addition, as APIs are build, managed, discovered and consumed by different personae, a central platform is needed, which allows the management of the needs the different personae might have.

API Gateway

It is important to understand that API Management and API Gateway is not the same. In discussions I often have the feeling that this is not clear.
An API Gateway as such is a concept how APIs are exposed to the outside world. So usually an API Gateway is a software component that allows to implement security features, like basic authentication as well as authorisation, throttling and maybe protocol translation. So the API Gateway acts like a gatekeeper fora company’s information that are exposed by public APIs. Usually the API Gateway is something which is deployed in the DMZ.

API Gateway vs. ESB?

Most API management platforms, offered by platform vendors like Oracle, Computer Associate or Mule, include an API Gateway component. For some vendors the API Gateway can also be used to implement business logic like data transformations. Since this overlaps with functionalities that are usually delivered by an ESB, this may be confusing for users and leads to questions like: “Why do I need an ESB, if I have an API gateway that provides similar functionalities?” (or even vice-versa, in case there is already an ESB in place). Good question!
To answer such kind of questions, it helps to take a step back and think about concepts of an ESB.

Enterprise Service Bus (ESB)

The concept of an ESB means to establish a central hub within a company that is responsible for connecting different services respectively systems, all having different data formats and using different protocols with each other.
In this context, an ESB as a technical software component is responsible to validate, transform and route messages between the different systems. In addition, additional integration logic, like message enrichment or message splitting, might be implemented in the integration routes. Furthermore an ESB is optimised to handle a huge amount of transactions in parallel.
In a modern IT system landscape, an ESB should be used as the central integration backbone. So from a strategic perspective, an ESB is the heart of a company’s integration strategy, which is base for every digital transformation strategy.

Back to the original question…

After this short breakout, we try to answer the question, why an ESB is needed, if an API gateway that provides similar functionalities is already in place:

For sure there is maybe no technical reason to do so, but there are many good reasons from a conceptual perspective, to separate the two areas also from a tooling perspective:
  • API Gateway
    • Acts a central entry point to a company
    • Exposes public APIs
    • Should not implement any business logic
    • Responsible for API analytics, like usage tracking
  • ESB
    • Acts a central integration backbone
    • Used internally for integrating heterogenous systems and services
    • Should not expose functionality to the outside world
    • Provides new internal services and APIs
According to these explanations, the most valuable and future-oriented solution with respect to digital transformation is to combine API Gateway and ESB.

Oracle SB 12c QuickTip: Resolve NoClassDefFoundError during Maven deployment

While deploying some services to a local DEV environment ( which is the prebuilt OTN SOA 12.1.3 VM ) using Maven Servicebus plugin, the deployment was failing for some reason. But instead of giving me the information about what is wrong with my service implementation, I received a NoClassDefFoundError. In the root cause of the exception stacktrace, it complains that class com/bea/wli/sb/util/DiagnosticLocation could not be found.

[INFO] --- oracle-servicebus-plugin:12.1.3-0-0:deploy (default-deploy) @ LoggingService
[INFO] Service Bus Archive deployed using session Service_Bus_Maven-LoggingService-1472570870357.
weblogic.rjvm.PeerGoneException: ; nested exception is:
weblogic.utils.NestedException: java.lang.NoClassDefFoundError: com/bea/wli/sb/util/DiagnosticLocation
at weblogic.rjvm.RJVMImpl.gotExceptionReceiving(RJVMImpl.java:1002)
at weblogic.rjvm.ConnectionManager.gotExceptionReceiving(ConnectionManager.java:1099)
at weblogic.rjvm.MsgAbbrevJVMConnection.gotExceptionReceiving(MsgAbbrevJVMConnection.java:527)
at weblogic.rjvm.t3.MuxableSocketT3.hasException(MuxableSocketT3.java:494)
at weblogic.socket.SocketMuxer.deliverExceptionAndCleanup(SocketMuxer.java:837)
at weblogic.socket.SocketMuxer.deliverHasException(SocketMuxer.java:777)
at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:368)
at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:30)
at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119)
Caused by: weblogic.utils.NestedException: java.lang.NoClassDefFoundError: com/bea/wli/sb/util/DiagnosticLocation
at weblogic.rjvm.RJVMImpl.gotExceptionReceiving(RJVMImpl.java:999)
... 10 more
As the server log files also didn’t give me a hint about what is wrong with my service, I searched my middleware home for jar files that contains references for the class mentioned in the exception. As a result, I was able to identify two jar files that contains the class:
  • oracle.servicebus.pipeline.kernel
  • oracle.servicebus.resources.core

Both jar files are located in $MW_HOME/osb/lib/modules.

In a next step, I add the two jar files in my local Maven repository using the Maven install plugin (the example underneath only shows the command for one of the jars):

mvn install:install-file -Dfile=/opt/oracle/middleware/jdev_1213_soa/osb/lib/modules/oracle.servicebus.resources.core.jar -DgroupId=com.oracle.sb -DartifactId=oracle.servicebus.resources.core -Dversion=12.1.3.0 -Dpackaging=jar

After that, I changed the Servicebus plugin configuration in the POM file, by adding two dependencies to the newly installed jar files.

<plugin>
<groupId>com.oracle.servicebus.plugin</groupId>
<artifactId>oracle-servicebus-plugin</artifactId>
<version>12.1.3-0-0</version>
<configuration>
<customization>${project.basedir}/../../CustomizationFiles/customizationFile_${target-env}.xml</customization>
<excludes>
<exclude>*/target/**</exclude>
</excludes>
</configuration>
<extensions>true</extensions>
<dependencies>
  <dependency>
    <groupId>com.oracle.sb</groupId>
    <artifactId>oracle.servicebus.pipeline.kernel</artifactId>
    <version>12.1.3.0</version>
  </dependency>
  <dependency>
    <groupId>com.oracle.sb</groupId>
    <artifactId>oracle.servicebus.resources.core</artifactId>
    <version>12.1.3.0</version>
  </dependency>
 </dependencies>
</plugin>

Applying the changes to the plugin finally helps to overcome the NoClassDefFoundError issue. As a result, the plugin now shows the real problem with the service.

[INFO] --- oracle-servicebus-plugin:12.1.3-0-0:deploy (default-deploy) @ OrderTransactionTrigger ---
[INFO] Service Bus Archive deployed using session Service_Bus_Maven-OrderTransactionTrigger-1472571721113.
[ERROR] The session cannot be activated due to existence of conflicts.
resource: Pipeline LoggingService/operations/updateLog/pipeline/UpdateLogPipeline
error: [PipelinePairNode1, Request Pipeline, ProvideLoggingData, Java Callout action] Archive resource LoggingService/shared/java/PersistenceService-1.0.4 does not exist
error: Reference to a non-existing instance: Archive LoggingService/shared/java/PersistenceService-1.0.4
resource: Pipeline

[INFO] ------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------

As it can bee seen from the output, I was missing a jar file for a Java Callout activity. With that knowledge, I was able to fix the service within a few minutes. Afterwards, it deploys without any problems.

Upcoming talks at Oracle Open World 2016 and DOAG

Finally my first post in my brand new blog… 🙂 This time it is more about organisational than real tech stuff, but don’t be worried it will not stay like this.

I wanted to keep you updated about upcoming conferences I attend in the near future and about the corresponding talks I’m going to give there.

Oracle Open World 2016

The CfP was already over for quite some time and I was curious about the results, because my good friend Danilo Schmiedel and me submitted six(!) proposals. And finally it happened: We received one confirmation for this awesome event taking place in beautiful city of San Francisco: Oracle Open World 2016 taking place in September (18th–22th). We are going to talk about Test Driven Cloud Development based on Oracle Developers Cloud Service and Oracle SOA Cloud Service. You can learn more about the details here.

DOAG Conference 2016

Another great Oracle conference is the DOAG conference in Germany hosted by German Oracle User Group. This conference takes place in November  (15th-18th) in Nuremberg. On this beautiful conference me and my colleagues Danilo Schmiedel and Borys Neselovskyi will speak about different topics like API Management, Cloud development and operating SOA Suite in Amazon Cloud environments. The titles of the three talks are:

Find more details about the presentation by following the links.

So check your calendars and subscribe for the conferences to learn about the interesting stuff. I’m looking forward to meet you at the conferences!