Showing posts with label soa. Show all posts
Showing posts with label soa. Show all posts

Saturday, November 7, 2015

MuleSoft Summit in Amsterdam

Last Wednesday I went to the MuleSoft Summit in Amsterdam to learn more about Mulesoft and their vision for the future of integration. The following topics / presentations were given during the day:



  • API-led Connectivity: Driving Digital Transformation - Guy Murphy, MuleSoft Solution Principal - Strategic Accounts EMEA
  • Lean Systems: Our experience in integration industry - Stijn Decneut
  • Hybrid Integration Platform:  Foundational Infrastructure for a Digital Business - Guy Murphy, MuleSoft Solution Principal - Strategic Accounts EMEA
  • API-led Connectivity - Paul Crerand, MuleSoft Director Solution Consulting EMEA
  • "How" to enable Digital Transformation - Nick Cochran, MuleSoft Senior Director EMEA Customer Success
  • Anypoint Platform: High-Level Roadmap - Paul Crerand, MuleSoft Director Solution Consulting EMEA


Of course these cover lot of content, so I will write about a few 3 industry trends that I found interesting. But first, a bit more on Mulesoft!

About Mulesoft



MuleSoft is a software company headquartered in San Francisco, but have offices around the world (including Amsterdam). Started in 2006, the company's Anypoint Platform of integration products are designed to tie together software as a service (SaaS) and on-premises software.


Mulesoft is also the only leader in all three Gartner Magic Quadrants:




Three new industry Trends

1. SOAP (WSDL) vs. REST (RAML)

Source: google.com/trends


Some organizations think that REST is still just for mobile and performance gains, however that is simply not true. It can be said that one reason SOA failed is that services were build for the consumer, and not for the customer.


SOAP’s pitfall is that it has become way too complex and is not human readable. Consider the example below:


  • Customers don’t care about servers.
  • Customers don’t care about policies.
  • Customers work with whoever is the most (capable &) convenient, at that moment.


Just because you create it does not mean someone will use it.


When designing your API’s focus on your core business capabilities, and expose them as conveniently as possible. REST APIs can make connecting to a business as convenient as browsing their website. Just compare above example to below:




2. The new role of IT

"By the end of 2017 Demand for Enterprise Mobile Apps Will Outstrip Available Development Capacity Five to One" - Gartner


Thus, IT can no longer build the apps, IT must govern and supply the data (via API’s).




So, how do you get started on this? This leads to industry trend number 3...


3. Hybrid Integration Platform



Challenges:


  • Enterprises have access to unprecedented amounts of data. Where are the API’s?




  • “Everything will be digital and everything will connect.”




Solution:
Hybrid integration platform (HIP).


Definition:
“A hybrid integration platform is on-premises and cloud-based, integration technologies securely connected so that it supports the integration of on-premises endpoints, cloud endpoints and the combination of the two, for all integration patterns.” - Gartner


Thus, modern enterprises need to have a HIP strategy. There are different ways to tackle this, but of course the Mulesoft recommendation is to use their Anypoint Platform: “One Platform to connect any application, data source, or API, to support HIP needs”


iPaaS Platform Features
  • Integration Services Development Platform Governance Platform
  • Life Cycle Management Platform
  • Content Marketplace Collaboration
  • Monitoring, Management, and Administration
  • Secure Connectivity to On- premises Platform


Application Integration Suite Features
  • Communications Transformation
  • Orchestration Intelligent Routing Adapters
  • Legacy B2B Gateway
  • Monitoring, Management and Administration
API Management Platform Features
  • Policy Management
  • Security, SLAs, ...
  • Policy Enforcement
  • Central PAP, Distributed PEPs
  • Security
  • Security Extensions
  • Token Mapping, Redaction
  • Management of Traffic
  • Messages Interfaces
  • Developer Support API Customization


All in all I enjoyed the day, and I am looking forward to start playing and learning more about the Mulesoft Anypoint Platform!

Tuesday, December 23, 2014

Direct Binding Adapter between Oracle Fusion Middleware 11g and 12c

From Oracle documentation we know the following:
“A SOA composite can invoke any Service Bus SB WSDL-based proxy service. To invoke an SB proxy service, the SOA service component must use a direct binding reference of Target Type "Oracle Service Bus."

However can this we done between FMW11g and FMW12c? The answer is in fact YES, and this can help in a strategy to run 11g and 12c in parallel without compromising performance.
clip_image002[4]
Steps on how to achieve this:
Open your 11g Service Bus Console.
clip_image004[4]
Go to your http OSB proxy service, and edit the Transport Configuration.
clip_image006[4]
Switch the protocol from http to sb.
 clip_image008[4]
Click Last. Click Save. Click Activate. Click Submit.
 clip_image010[4]
Export the WSDL of the proxy to be used later in JDeveloper. (It will export as a .jar file that you can extract)
clip_image012[4]
You have now changed the protocol of the proxy from HTTP to SB. Thus this proxy cannot be invoked over the HTTP protocol anymore. Alternatively you can create a clone of the proxy service and have a HTTP and SB version available.
Now launch JDeveloper for 12.
clip_image014[4]
Create a new BPEL process in the same way as normally done.
clip_image016[4]
Now drag in the Direct Binding from the BPEL Services tab under the Components tab.
clip_image018[4]
Supply a name and change the Reference Target to Oracle Service Bus. Then browse for the WSDL file you downloaded earlier. Note that the Provider URL is t3 protocol.
Click OK.
clip_image020[4]
Create an Invoke step, and assign the input and output of the call like you would normally do.
 clip_image022[4]
Deploy the SCA to your 12c environment and log into Enterprise Manager 12c.
 clip_image024[4]
You can now test the Service.
 clip_image026[4]
You can also launch the flow trace to inspect the flow. Note the Direct Binding icon on the flow.
 clip_image028[4]
You have now successfully connected OSB11g and BPEL12c without the overhead of HTTP calls!

Tuesday, December 1, 2009

Oracle BPEL - Invoking a Partner Web Service through a Proxy Server

When trying to call a web service through a proxy server (or trying to avoid using the proxy server for certain hosts) the BPEL Process Manager Administrator’s Guide have steps to edit a file, but I found doing this alone don’t work. The guide basically states to modify the following file: $ORACLE_HOME/bpel/bin/obsetenv.sh

And then modify the line set OB_JAVA_PROPERTIES= as follows:

set OB_JAVA_PROPERTIES="-Dhttp.proxySet=true"
"-Dhttp.proxyHost=myproxy004.company.com"
"-Dhttp.proxyPort=8090" "-Dhttp.nonProxyHosts=internal123.company.com"

After rebooting the BPEL server, it still didn’t work. What I had to do was also modify the following file: ORACLE_HOME/opmn/conf/opmn.xml

Look for the piece of XML that looks like this:

<process-type id="oc4j_soadev" module-id="OC4J" status="enabled">
<module-data>
<category id="start-parameters">        
<data id="java-options" value="
-server
-XX:MaxPermSize=128M –ms512M
-mx1024M -XX:AppendRatio=3
-
Djava.security.policy=$ORACLE_HOME/j2ee/oc4j_soadev/config/java2.policy
-Djava.awt.headless=true
-Dhttp.webdir.enable=false-Doraesb.home=/u01/app/oracle/product/10.1.3/soad/integration/esb -Dhttp.proxySet=false -Doc4j.userThreads=true -Doracle.mdb.fastUndeploy=60
-Dorabpel.home=/u01/app/oracle/product/10.1.3/soad/bpel
-Xbootclasspath^/p:/u01/app/oracle/product
/10.1.3/soad/bpel/lib/orabpel-boot.jar -Dhttp.proxySet=false"
/>             
</category>

Then modify the Dhttp.proxySet=false and change it to Dhttp.proxySet=true, add -Dhttp.proxyHost for your proxy server,  Dhttp.proxyPort for your proxy server port and Dhttp.nonProxyHosts for hosts that should not go through the proxy. The end result should look something like this:

<process-type id="oc4j_soadev" module-id="OC4J" status="enabled">
<module-data>
<
category id="start-parameters"> <data id="java-options" value="-server –mx1024M
-ms512M -XX:MaxPermSize=128M
-XX:AppendRatio=3-Djava.security.policy=$ORACLE_HOME/j2ee/oc4j_soadev
/config/java2.policy
-Djava.awt.headless=true
-Dhttp.webdir.enable=false-Doraesb.home=/u01/app/oracle/product/10.1.3/soad
/integration/esb
-Dhttp.proxySet=false -Doc4j.userThreads=true
-Doracle.mdb.fastUndeploy=60
-Doc4j.formauth.redirect=true
-Djava.net.preferIPv4Stack=true
-Dorabpel.home=/u01/app/oracle/product/10.1.3/
soad/bpel-Xbootclasspath^/p:/u01/app/oracle/product
/10.1.3/soad/bpel/lib/orabpel-boot.jar
-DHTTPClient.disableKeepAlives=true
-Dhttp.proxySet=true
-Dhttp.proxyHost=10.10.10.1
-Dhttp.proxyPort=8080 -Dhttp.nonProxyHosts=10.10.10.2"
/>    
</category>

Now you can call webservices through a proxy server. ;-)

Sunday, March 15, 2009

Using Oracle BPEL on Mac OS X ­ Leopard

There is some irritating bugs in Jdeveloper 10134 and the use of BPEL on Mac OS X - Leopard. Here is what they are, and how I fixed / or got workarounds for them:

The first and biggest problem is not being able to drag a Service from the Component Palette into the BPEL Process diagram. You also can't drag in functions in your transformations. This is quite frustrating since it is a known bug on metalink, but not yet fixed. (Bug Number 6924432) Well there is a easy workaround for the BPEL process diagram. You can right­click on any of the Process Activities and go to Insert After ­> Activities ­> Activity.

But what if you created a Empty BPEL process? Whell then you'll have to go to the source and add a empty node (<empty/>) to get you started.

Its just as easy to add a Partnerlink. Right­-click in the Services area of the screen, and select Create new Partnerlink.

On the transformation side of things it's not quite that easy to work around. The best solution I could come up with is to add the functions directly to the source code in the source tab.

You can then switch back to the Design view and see your code.

This might not be the best solution, but will centainly work and enable you to create BPEL processes without VMware or Parallels. And will definitely improve your xsl knowledge.. ;­-) You can also right­click­ ->Help on a function to get information on how to use it.
The second problem I experienced was that my jdeveloper kept crashing when I wanted to edit a partnerlink. I tried changing the JDK versions it used with no luck. What I found was, as soon as I open jdeveloper I "create a partnerlink" but click cancel right afterwards. Why this worked for me, I don't know, but it certainly solved my problem.
The third and last issue I had was that when launching jdeveloper it doesn't close the terminal
window. What I did to fix that was to add the JDeveloper directory to my PATH environment variable and then launch jdeveloper with the following command:

jdev &exit

This will exit the terminal window after opening JDeveloper. To add the JDeveloper ditectory to your path open your .bash_profile file and add the following line:

export PATH=$PATH:"/Applications/jdevstudio10134/jdev/bin"


Hope this post will help you use BPEL on Mac OS X Leopard!

Saturday, February 21, 2009

Oracle JDeveloper anti aliased text

I don't know about you, but I love anti aliased text. Here's how to add it to Jdeveloper.

Add this to your jdev.conf file:
"AddVMOption -Dswing.aatext=true"

Tuesday, November 18, 2008
















Calling a WS-Security secured web service from Oracle BPEL

Oracle provides a nice guide to show you how to secure a web service using the Oracle Web Service Manager here. So how do you call this WS-Security enabled web service? Easy, just follow the following steps:

1. Import the secured wsdl as a partner link.

2. Go to the properties tab, and add the following properties:

  • wsseHeaders - Property Value : credentials
  • wsseUsername - Property Value : your_webservice_username
  • wssePassword - Property Value : your_webservice_password

3. Click ok.
4. Thats it, you can now call the partner link with an invoke and map all the fields you require.

5. The BPEL process can now be deployed.

Update:
If the source service uses http for authentication method, use in your properties tab:

  • basicHeaders - Property Value : credentials
  • basicUsername - Property Value : your_webservice_username
  • basicPassword - Property Value : your_webservice_password