BPM/SOA Human Task: Java code in jsp source files is not allowed in ojsp.next mode by Antonis Antoniou

clip_image002Today I came across an exception while trying to load one of my task details (v12.2.1).

Error: OracleJSP error: oracle.jsp.parse.JavaCodeException: Line # 14, oracle.jsp.parse.JspParseTagScriptlet@66e50889
Error: Java code in jsp source files is not allowed in ojsp.next mode

What was really strange to me was that I did not do anything different from what I used to do with previous versions.
After some research I found out that this was a known issue for 12.2.1. There are two possible causes for getting this error.
a) Either you are not using the fully qualified host name  (including domain name) for the forms to render properly. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Best practice for calling web services from Oracle Process Cloud Service by Lykle Thijssen

clip_image002

 

More often than not, you will want your processes to interact with other services or processes inside or outside your enterprise. Since integration options are rather typical in Oracle Process Cloud Service, this article will help you to apply best practices for creating and managing your connections in a sustainable fashion.

Process Cloud integration points

Let’s say you have modelled a process in Oracle Process Cloud Service (PCS) for a private home loan application. Chances are quite high that this process will need some extra information to make the right decisions, like a credit check or a risk assessment and you will want to store the result of the application somewhere, for example in a database.
This requires several integration points in your PCS application. Now if you would directly import the WSDLs of those web services that you need to integrate with, it’s most likely not going to work. For example, Oracle Policy Automation, which you can use for risk assessment, has a highly generic interface and without XSLT support in PCS, you can’t make a proper request. Other services might require WS-Addressing or other technical aspects that PCS doesn’t support, so you need to put something in between. For this something, you can use various SOA and Service Bus products or Oracle’s Integration Cloud Service, once it has matured some more to deal with web services properly.

Creating the interface – challenges

So, you have decided to put one or more layers of services between PCS and the web services that you need to invoke. Regardless of your architecture, you need to keep some considerations in mind: Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Custom xpath functions in service bus by Milco Numan

clip_image002

How can you create  custom XPath functions in Oracle Service Bus 12c? And how can you use these in both  XSLT and XQuery? Let’s find it out. I like to show you how they’re different in behaviour.

The context of my post comes from one of my projects, where we were migrating quite some (stateless) services from the SOA (BPEL) platform to Service Bus. Since our clients were already ‘virtualized’ to our clients (i.e. clients invoked them through the Service Bus), we could easily change the implementation platform without changing the service contracts.

For the transformation, we were reusing the existing XSL transformations, so a couple of the custom XPath functions had to be made available in Service Bus. Additionally, we were also introducing the DVM (Domain Value Maps) as a replacement for a custom coded lookup-implementation, created when DVMs did not yet exist. For this purpose, we had to create a custom XPath wrapper function, in order to implement some custom logging that the customer did not want to lose.

Test XPath function

As a simple scenario, I am using base-64 encoding and decoding to be implemented as custom XPath functions (code is shared through GitHub). In order to test the custom XPath function, I have created some very simple proxies and pipelines that do not route to any other service but instead just call upon a transformation in order to test my custom functions:

Child elements

In the reply element I have three different child elements, the first contains the untransformed contents of the input string and the second contains the base64 encoded contents. The last element contains the value after invoking the decode operation on the encoded string, to verify that the inverse operation restores the original value. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

My private Corner – Merry Christmas

image

In the last weeks I had the privilege to test some of our upcoming PaaS middleware solutions by myself. One of the results a full integration scenario developed by drag and drop – you can see above. It is amazing how fast, easy, nice and rich integrations, can be built by a citizen developer like myself. Hope to see you all at the PaaS Partner Community Forum 2017! #jkwc

Jürgen Kress

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

OSB Patching by Jon Petter

 

We have some customers which only use OSB – and not SOA Suite. When you want to patch – should you look only at WLS and OSB-patches? The answer is no.

One such reason is documented on MOS: Should the SOA Bundle Patches for 11g and 12c be applied to OSB (Doc ID 2102449.1). It states: In 12c, since OSB services can use JCA technology adapters, there is value in applying the SOA Bundle Patches where fixes to these adapters are included.

The other reason is because JDeveloper has common features in the two products. For example SOA patch 22226040: java.lang.NullPointer for XQuery File ver 1.0 in JDEV 12.2.1 OSB Proj – is one you would like to use for OSB on 12.2.1. The problem is shown in our blog post: OSB Patch. If the patch does not work – remember to do the cleanup-steps mentioned at the end of the blog.

My advise is to create a predefined Patch Search in MOD so you can monitor existing patches. Here are some of my searches.

clip_image002

One good thing you can see is the last time you searched. For example for OSB – then WLS, SOA and OSB are relevant. My advise is to order patches so you see the latest updates first, and that you at least should add the recommended patches. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Who needs a service bus anyway? By Milco Numan

clip_image002

 

Some time ago I was having a discussion about the setup of a SOA project on which a former colleague was about to work on. The purpose of this project was to implement a synchronous service API for a third party systems to integrate with. This API needed to conform to a B2B standard (written some ten years ago) and in their particular case, it would need to provide data from their legacy ERP system.

The API description consists of several different ‘business operations’ where their request messages come in over HTTP in a variety of predefined formats, e.g. as an HTTP GET operation where the parameters are encoded in the URL string or sending an HTTP POST operation where the request message is contained in the body: in both cases, the response is handed back as an XML message. In order not to exclude third party systems, both flavours of operations would need to be implemented.

One of the other requirements for the API was that it needed to implement an operation to list all operations that it currently supports, together with the endpoints on which these operations need to be invoked.

Restrictions

One of the current implementation of the third party systems they were looking to integrate with was quite quirky in that it required all operations to have the exact same endpoint. So, it was a tough choice to either exclude this system from the possible clients and create a ‘proper’ implementation where all operations have their own endpoints, or to provide an implementation where there’s only one endpoint that basically functions as a dispatcher for the different operations.

Summarizing:

  • XML POST interface, request = XML, response = XML for all operations
  • HTTP GET interface, request = None, response = XML for all operations
  • Provide a single endpoint accepting all these requests at the same address

Service Bus to the rescue

As we were discussing the project and its requirements, it turned out that their internal IT department had already started development using Oracle SOA Suite, as their skills in BPEL were ‘the hammer that made this problem look like a nail’. However, my feeling was that this project would actually be much better off by the introduction of Oracle Service Bus to transform different message formats into a generic XML representation (and depending on the complexity: implement the message flows entirely in Service Bus or offload the more complicated ones to SOA Suite).

Scenario

As I am somewhat branded by my background in chemistry, I will show my proposed implementation using some ‘chemical’ webservices from WebServiceX as an example. For the backend implementation, invariably the SOAP implementation of the service will be used. For my convenience, I am reusing the XML structures that are provided by the WebserviceX implementations, saving myself the hassle of transforming the messages structurally or with respect to their namespaces.

In the following scenario, I am exposing two operations (GetAtomicNumber and GetAtomicWeight) in two different message formats:

HTTP GET: http://server:host/HttpGetAtomicNumber?RequestName=GetAtomicNumber&elementName=boron

XML POST: http://server:host/GetAtomicNumber

Furthermore, all operations will also be available at a consolidated endpoint for both request message formats, at http://server:host/OneProxyForAll

Schematic implementation

The following diagram shows a schematic representation of the desired setup; on the left hand side, you can see the exposed proxies (HTTP GET, XML POST and Generic Gateway), connected through some Service Bus flow logic with a Service Bus Business Service, exposing the actual implementation logic:

Environment

The sample project was built using Oracle’s 12.1.3 Virtual Image, downloadable from Oracle Technology Network. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Poll a Microsoft Exchange mailbox from OSB using DavMail by Laurens van der Starre

 

clip_image002The Oracle Service Bus has built in features to poll an IMAP of POP3 mail account. There are loads of excellent blog posts that exactly describe how to do it. However, when the mail server happens to be a Microsoft Exchange server, things become shady. Exchange’s IMAP implementation tends to be not really that compatible, and the server log will fill up with stacktraces such as:

Of course we can connect using the Exchange Web Services (EWS) using the OSB, but that is loads of work. Luckily there is DavMail. DavMail is an gateway that sits in between Exchange and your third party mail clients. Using DavMail, you can connect using simple POP3 or IMAP protocols to DavMail which in turn connects to Exchange using the EWS. DavMail is build in java, and runs happily on WebLogic Server.

So, download DavMail’s WAR distribution for SourceForge. Unpack the WAR-file and edit the properties file in WEB-INF/classes.

Set is to run in Server mode, and let it know where the EWS is: Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

SOA & BPM Community Newsletter December 2016

Dear SOA & BPM Partner Community,

The annual PaaS Partner Community Forum will take place March 27th & 28th & 29th 2016 Croatia. Architects, Practice Managers, Consultants and Developers get the latest PaaS updates from the Oracle Product Management Team. Join us for a week full of keynotes, breakouts, hands-on sessions, community day and networking opportunities.

Oracle SaaS solutions can be tailored to the customer’s user experience by branding, flexfields or workflow configuration. Oracle PaaS is designed to Enrich and Differentiate Oracle’s SaaS solutions. Customers use PaaS to analyze, extend, connect and secure SaaS. To leverage this service opportunity a Partner Resource kit Oracle PaaS: Designed to Enrich Oracle SaaS (membership required) is available.

Our friends from down under just release two videos, one on SOA Cloud Service and the other one how they use Process Cloud Service within Rubicon Red. An excellent sample or the use cases to automate e-mail driven processes with PCS and Document Cloud Service. Oracle Partners can purchase PaaS Cloud Services with a discount up to 75%.

In our last section Architecture & PaaS4SaaS the UX team highlights Employee Enablement with Oracle PaaS for SaaS – Human Resources and the R11 UX HIGHLIGHTS

For a short summery of our key monthly information watch the Fusion Middleware & PaaS Partner Updates on YouTube. The December edition of the PaaSPartner Update contains details about Partner Opportunities in the Cloud, Enrich SaaS with PaaS and the upcoming community webcast about the Partner Community Resources and how you get a free PaaS trial on December 20th 2016. Merry Christmas!

Want to publish your best practice article & news in the next community newsletter? Please feel free to send it via Twitter @soaCommunity #soaCommunity!

 

To read the newsletter please visit http://tinyurl.com/soaNewsDecember2016   (OPN Account required)

Please like and share the newsletter on LinkedIn and Twitter

Jürgen Kress

Fusion Middleware Partner Adoption
Oracle EMEA
Tel. +49 89 1430 1479
E-Mail: juergen.kress@oracle.com
clip_image003Blog clip_image004LinkedIn clip_image005 Twitter

To become a member of the SOA Partner Community please register at http://www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

image

Blog Twitter LinkedIn image[7][2][2][2] Facebook

Technorati Tags: newsletter,SOA Community newsletter,SOA Community,Oracle,OPN,Jürgen Kress

Consuming OAuth protected resources using Oracle Service Bus article series by Milco Numan

 

clip_image002In this blog post, I will provide a general introduction of REST, explain some of the choices made and lay some of the ground work. The second part of this blog series will discuss the token management part while the third and final part describes the actual creation of the SOAP services providing the proxy to the external REST APIs.

With the introduction of SOA Suite 12c, the Oracle JCA REST adapter was introduced for use in both SOA and Service Bus 12c. This enables SOA developers to expose REST interfaces to their service consumers. A study by the Oracle A-team shows that in certain scenarios response times on mobile platforms may be reduced by an order of magnitude by consuming REST services instead of their SOAP equivalents.

However, using the REST adapter you cannot only expose REST interfaces to your own service implementations (inbound REST), but you can also consume REST services (outbound REST). In this series of blogs, I will demonstrate how I implemented a use case of “outbound” API management for a proof of concept, where the REST services were exposed as SOAP web services to our internal clients (which are largely “REST unaware”). An additional dimension is provided by the fact that the REST APIs invoked are secured by OAuth 2.0, so also some token management is needed in order to successfully invoke the service.

What about Security?

I am glad you asked. As SOAP has quite a number of standardized extensions in the realms of orchestration and security, this is very much “terra incognita” in the REST world. Well, not really. As REST is leveraging the HTTP protocol as the transport mechanism, a first step in security would be to use HTTPS (HTTP over SSL) to prevent an intermediary from eavesdropping on the communication between the service and the client. However, this will only prevent the interception of messages, it does not provide the server with any method of determining the origin of the request. Using HTTP Basic Authentication may be an option to force the client to sent some identification to the server, but the problem is that this scenario is not very useful for application to application message exchange as it does not provide options to provide temporary access or to revoke the access.

Enter OAuth, “an open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications.” Version 2.0 of this protocol has been published in 2012 and is widely in use for securing access and authorization to services, e.g. Google, LinkedIn, Facebook, Dropbox and Paypal to name a few.

What is REST?

What is REST? And how does if differ from SOAP? Well, first of all REST and SOAP are intended to access (remote) Web Services. Where SOAP is a heavy-weight protocol, involving predefined message structures and formats, REST is defined very loosely as an “architectural style”. Messages transmitted to SOAP web services are always encoded as XML data structures, whereas the payload in REST can be either XML or JSON. The latter seems to be the preferred format nowadays, I came across a site describing JSON as “The Fat-Free Alternative To XML“.

In REST, you are manipulating “resources” (types of objects, e.g. customers, orders, items and the like) using standard HTTP methods. You’d use the GET method on a resource to retrieve a single instance or collection, use the HTTP POST method to create a new one, update a resource instance using HTTP PUT and the HTTP DELETE takes care of removing an object. Read part 1 here and read part 2 here and read part 3 here

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

No More Hidden SOA Performance Problems by Kevin King

 

clip_image002For anyone who has done performance and load testing in Oracle SOA suite, you know it can be frustrating and time consuming. However, our lives have just gotten much easier! Originally, quite a bit of manual work was needed to find or calculate how long composites took, what the problematic components were, and why instances just took too long. Fortunately, Oracle has introduced a new monitoring tool, Integration Workload Statistics (IWS). This tool creates a report very similar to an AWR report, but focuses on the SOA infrastructure. This feature was released with the new 12.2.1 version of SOA.

Integration Workload Statistics

clip_image004The IWS report is intended for reactive monitoring of your system. Enterprise Manager provides a few different tools for monitoring real-time performance and other metrics, however IWS was introduced to post-process poorly performing periods. Running a report over a one hour period where performance is a constant issue allows you to see what components are causing delays. The report details out statistics on components, composites, processes, adapters, endpoints, queues and more!

IWS works by taking periodic, configurable snapshots of server metrics. These metrics are stored to the database and are available for reporting. The reports are generated based on a start and end time and further filtering can be done by server, partition, and even specific composites. Oracle has provided an easy way to view this data with a generated HTML report and they also provide a CSV file, or XML file with the data requested. 

The report (assuming FINEST level collection) consists of: