Thursday Feb 12, 2015

Creating a Mobile-Optimized REST API Using Oracle Service Bus by Steven Davelaar

clip_image002

Fusion Middleware A-Team architect Steven Davelaar kicks off a new series that shows you how to use Oracle Service Bus (OSB) 12c to transform SOAP-based enterprise system interfaces into a mobile-optimized REST-JSON API.  Read part 1 and Read part 2

Introduction

To build functional and performant mobile apps, the back-end data services need to be optimized for mobile consumption. RESTful web services using JSON as payload format are widely considered as the best architectural choice for integration between mobile apps and back-end systems. At the same time, most existing enterprise back-end systems provide a SOAP-based web service application programming interface (API) or proprietary file-based interfaces. In this article series we will discuss how Oracle Service Bus (OSB) 12c can be used to transform these enterprise system interfaces into a mobile-optimized REST-JSON API. This architecture layer is sometimes referred to as Mobile Oriented Architecture (MOA) or Mobile Service Oriented Architecture (MOSOA). A-Team has been working on a number of projects with OSB 12c to build this architecture layer. We will explain step-by-step how to build this layer, and we will  share tips, lessons learned and best practices we discovered along the way. In this first part we will discuss how to design the REST API.

Main Article

Design Considerations

Let’s start with the first challenge: how do you design an API that is truly optimized for mobile apps? A common pitfall is to start with the back-end web services, and take that back-end payload as a starting point. While that may limit the complexity of transformations you have to do in OSB 12c (you could even use the automated “Publish-As-REST” function on a SOAP business service) it leads to an API which is everything but optimized for mobile. This brings us to our first recommendation:

The REST API design should be driven by the mobile developer.

He (or she) is the only one who can combine all the requirements, information and knowledge required for a good design:

  • he designs and builds the various screens, knows the supported form factors and knows exactly which data should be retrieved for which screen.
  • he knows the requirements for working in offline mode, and knows how this can be supported and implemented using his mobile development tool set.
  • he is responsible for data caching strategies to optimize performance in both online and offline scenarios
  • he decides which read and write actions can be performed in a background thread not impacting the user-perceived performance.

To illustrate how the above aspects impact the design of the API, we will introduce the sample “human resources” app that we will use throughout this article series. Lets start with the three screen mockups our API should support: 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 Suite 12c New Features - Coherence Adapter by Niall Commiskey

clip_image002

Here is a simple example of using the above -I have a web service that checks the inventory status of products. I create a BPEL process that accepts an order as input and then calls the above web service to get the inventory status of the product. 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

Improve Developer Productivity with SOA 12c by Tshepo Madigage


clip_image001Oracle released SOA Suite 12c (12.1.3) bringing a further integration between components and a bunch of new features. Most of them are quite spectacular, but at the same time all are useful. A release to persuade potential buyers and a lot more to please users of the product.

In addition to adding new features supporting emerging industry trends like cloud and mobile, Oracle SOA Suite 12c also provides many new features and enhancements around developer tooling, administration and operations and, of course, performance.

Quick Start Install

The Quick Start install provides the foundation for a single user development environment, which includes all Oracle SOA Suite core components - Oracle BPEL Process Manager, Oracle Human Workflow, Oracle Business Rules, Oracle Mediator, Oracle Service Bus, Oracle Technology Adapters, Oracle Enterprise Scheduler, SOA Spring Component and Enterprise Manager Fusion Middleware Control. In addition, Oracle JDeveloper is installed with all SOA IDE extensions and an integrated WebLogic Server.

In JDeveloper, the WebLogic Integrated Server is pre-configured with above SOA Suite components runtime and JavaDB (JavaDB is a development database that allows development with SOA Suite without needing RCU)

Templates

“Share and reuse” has always been one of the pillars of a service-oriented architecture. Oracle SOA Suite 12c introduces several new features to boost the ability to share and reuse services and components, while at the same time enabling best practices and improving manageability. The new SOA starter templates provide an easy way to package SOA composites, components or fragments of a BPEL process and distribute them to other departments, partners or customers. This enables the sharing of frequently used patterns and speeds up development for template users. Three types of SOA starter templates are supported:

  • Project templates: They include a complete project with all components and resources used and will be used when creating a new project in your SOA application.
  • Component templates: A component with all references resources and components. For example, a BPEL process that calls a business rule or adapter can be packaged as component template. The component does not have to be complete and does not have to compile. A component template can be added to an existing project.
    Component templates will be visible in the composite palette if they’re available in the template path, configured in JDev.
  • Custom activity templates: A scope in a BPEL process, which may include an invoke/receive from/to a partnerlink, can be packaged as a custom BPEL activity. For example, an assign activity and a call to an adapter. Those custom activities will be available in the BPEL palette.

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

Wednesday Feb 11, 2015

SOA/API developer tool tips by Luis Augusto Weir

clip_image001Having been delivering SOA projects for over a decade, I’ve come across many tools some of which I hate and avoid using them (unless a client demands so)  and others that have made my life easier when delivering projects.

The below table is a recollection of tools I have used or come across which  I find useful and recommend SOA/API practitioners to use or at least evaluate. Enjoy :)

SDLC

Tool Name

Description + Links

Project/Scrum Management and Collaboration

Jira

Jira when used for scrum management is In my opinion is the the best tool I've used for managing scrums specially in an offshore / onshore distributed environment. It also has capabilities to manage GIT repositories which makes this an ideal tool for a complete cloud/based agile project with users all over the world.
https://www.atlassian.com/software/jira

Agilo

I used this tool some time back successfully in a large onsite SOA project and it worked very well for us. Product has come along way since then and It's more feature rich than it used to be. It has a 30 day trial.
http://agilosoftware.com/

Trello

Very simple, lean and easy to use project/task management and collaboration tool. It’s free for any number of users, can log-in using Google account.
Thanks Darren Atkinson for this tip!
https://trello.com
Furthermore there are some awesome plug-ins to use it for Agile projects:

https://www.burndownfortrello.com/

http://scrumfortrello.com/

Coop App

very clean UI supporting features such as share status updates, questions, links, and others.
http://coopapp.com/

PBworks

Suite of tools including in-app instant messaging, live notifications of changes to work spaces, live editing of documents, voice collaboration, wiki, and others. Can be used for full collaboration including project management.
http://www.pbworks.com/

Configuration Management

GitHub

I have been using this tool recently but found it amazing specially because of the GitHub client which is not intrusive to filesystem (like Tortoise and that create issues some times in the local file system) and very easy to use. It's social collaborative capabilities are awesome but also supports private projects however this latter feature it's not free. Also there are tutorials online.
https://github.com/
try.github.com

Get all tips from Luis 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

Tuesday Feb 10, 2015

Submitting an ESS Job Request from BPEL in SOA 12c by David Xu

clip_image002Introduction

SOA Suite 12c added a new component: Oracle Enterprise Scheduler Service (ESS). ESS provides the ability to run different job types distributed across the nodes in an Oracle WebLogic Server cluster. Oracle Enterprise Scheduler runs these jobs securely, with high availability and scalability, with load balancing and provides monitoring and management through Fusion Middleware Control. ESS was available as part of the Fusion Applications product offering. Now it is available in SOA Suite 12c. In this blog, I will demonstrate how to use a new Oracle extension, “Schedule Job”, in JDeveloper 12c to submit an ESS job request from a BPEL process.

Set up a scheduled job in Enterprise Scheduler Service

1. Create a SOA composite with a simple synchronous BPEL process, HelloWorld.
2. Deploy HelloWorld to Weblogic.
3. Logon to Fusion Middleware Enterprise Manager.
4. Go to Scheduling Services -> ESSAPP -> Job Metadata -> Job Definitions. This takes you to the Job Definitions page.

5. Click the “Create” button, this takes you to Create Job Definition page. Enter:

Name: HelloWorldJob

Display Name: Hello World Job

Description: Hello World Job

Job Type: SyncWebserviceJobType

Then click “Select Web Service…”. It pops up a window for the web service.

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 Suite 12c: Bulk Fault Recovery by Michel van Zoest

clip_image001In earlier versions of the Enterprise Manager it was already possible to recover faulted instances of web services. Like for instance when a service that the instance depends on is down, the instance will throw a fault and stop processing. When the underlying service is up again, you could go back to the faulted instance and use recovery to have it continue from the step it faulted on.

Now with the introduction of 12c the Error Hospital in the Enterprise Manager supports Bulk Recovery.
This means that it is possible to recover a whole batch of faulted instances with just one click.
A scenario where this can be very powerful is when an underlying service that is used by a lot of other services goes down. For instance a service that calculates foreign exchange rates in a financial system. Or an example I have used in the Oracle SOA Suite Bootcamp in which we built an order system that relies on another service to validate payments.

When I shutdown the ValidatePayment service, the ProcessOrder service will go into fault and needs recovery. 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

Monday Feb 09, 2015

Rapid creation of Virtual Machine(s) for SOA Suite 12.1.3 server run time environment – leveraging Vagrant, Puppet and Biemond by Lucas Jellema

clip_image002In recent previous articles I have discussed the use of Vagrant and Puppet for the automated creation of Virtual Machines, for example with various Oracle software components completely installed into them. In this article, I am merely the consumer of goodies. Edwin Biemond published on GitHub the complete set of Vagrant and Puppet configuration files for creating VMs with the SOA Infra database (Oracle Database 11.2.0.4, populated with the RCU installer) and the SOA Suite 12.1.3 run time environment – including Service Bus, see: WebLogic 12.1.3 infra (JRF) with SOA,OSB.

In this article, I will describe the steps I took to actually produce the two VMs using Edwin’s scripts. The visual description of the whole process looks something like the next figure: 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

Creating a Mobile-Optimized REST API Using Oracle Service Bus – Part 2 by Steven Davelaar

Introduction

clip_image002To build functional and performant mobile apps, the back-end data services need to be optimized for mobile consumption. RESTful web services using JSON as payload format are widely considered as the best architectural choice for integration between mobile apps and back-end systems. At the same time, most existing enterprise back-end systems provide a SOAP-based web service application programming interface (API) or proprietary file-based interfaces. In this article series we will discuss how Oracle Service Bus (OSB) 12c can be used to transform these enterprise system interfaces into a mobile-optimized REST-JSON API. This architecture layer is sometimes referred to as Mobile Oriented Architecture (MOA) or Mobile Service Oriented Architecture (MOSOA). A-Team has been working on a number of projects with OSB 12c to build this architecture layer. We will explain step-by-step how to build this layer, and we will  share tips, lessons learned and best practices we discovered along the way. In part 1 we discussed the design of the REST API, in this second part we will discuss the implementation of the “read” (GET) RESTful services in service bus by transforming ADF BC SDO SOAP service methods

Getting Started

As of release 12.1.3 you can develop and test service bus applications inside JDeveloper. For this you need to download and install a separate “SOA Suite Quick Start” version of JDeveloper. Download page is here, installation instructions can be found here.

The SOA Suite Quick Start release of JDeveloper 12.1.3 has the same version number as the “vanilla” JDeveloper 12.1.3 release. This means that by default they will use the same system directory. This can cause weird and unexpected behavior. You need to make sure both JDeveloper releases use their own system directory by setting the JDEV_USER_HOME environment variable in the executable file that you use to launch JDeveloper (custom .bat file on Windows, JDeveloper Unix executable file inside package contents on Mac).

After starting the JDeveloper 12.1.3 release that comes with the SOA Suite Quick Start, you go to the File -> New -> Application gallery and choose Service Bus Application with Service Bus Project. 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

Start expired instances in waiting state for Oracle SOA Suite by Reinhold Becker

clip_image002In a BPEL process there are some use cases where a Wait activity or the onAlarm branch of a Pick activity is needed. An example for an onAlarm branch is a timeout mechanism for an asynchronous call. These activities save the instance in the dehydration store for a defined time. To wake up the waiting instances there is a quartz scheduler job running in the weblogic and check the expiration date in the dehydration store. For the case the dehydration store is not available, the scheduler retry to call the database. The retry settings can be found in the advanced BPEL properties in the System MBean Browser. The properties are named ExpirationMaxRetry and ExpirationRetryDelay. When the retry failed the data sets won’t be cleaned from the dehydration store.

The suggestion to clean this is to click on the Button “Refresh Alarm Table” in the Recovery console. But it is unpleasent to click the button periodically, so the wish appear to do this automated. There is a way for an automatically clean. Just start a job on the SOA Suite Database with the following SQL script. 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

Sunday Feb 08, 2015

SOA Suite 12c: Actionable Emails with Human Task service by Lucas Jellema

clip_image002It is my assumption that inbound and outbound emailing has been configured – for example for a GMail account – as described in these two articles: GMail for inbound mail in SOA Suite 12c and GMail for outbound mail in SOA Suite 12c and that test mails can be sent and received.

The steps are:

  • configure an email driver for SOA Suite for outbound and inbound emails
  • configure an email address (one of the inbound email accounts set up on the email driver configuration) for actionable emails
  • create a Human Task definition for a task that is configured as actionable; assign this task to a user who has an email configured in the LDAP directory
  • deploy the Human Task as part of a SOA Composite; invoke the composite to have the task assigned to the user
  • the user should receive a notification mail message regarding the task assignment with the option to act on the task by clicking a link in the email; clicking such a link will trigger a response email to the actionable email account with appropriate meta-data for the SOA Suite to interpret the response; the user can even add attachments and comments to this task response mail.

We assume the first setp has been taken care of. Once the email driver for the managed server running SOA Suite has been configured for outbound and inbound email interaction, there is really not a lot to do.

Open the menu SOA Administration | Workflow Properties: 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

About





Search

Archives
« February 2015
SunMonTueWedThuFriSat
7
28
       
       
Today