By hamsun-Oracle on Sep 09, 2014
By Joe Greenwald, Principal Oracle University Instructor
In SOA Suite 12c, we create application integrations and business processes designed as services composed of processing logic, data transformation and routing, dynamic business rules and human tasks in the form of XML-based metadata. The graphical representations of these services are created in JDeveloper using its graphical editors. Since these services are composed of individual, separately configurable components, we call this a composite service. Once deployed to and hosted by Oracle SOA Suite, this service looks and acts like any other web service to its clients.
It would be highly productive and desirable to be able to easily create templates for service designs that could be reused across teams and projects. Using quality designs and tested patterns as the starting point for new services speeds up development while also supporting widespread adoption of quality and standards in service design.
SOA Suite 12c automates creation and management of templates of service composites, as well as individual service components. The service project templates we create will be stored and managed in the file-based MDS, so they can easily be shared with other developers.
We have an existing service composite that we would like to clone or use as the basis of new service composite. Once we create the new service based on the template, we’ll be able to make modifications to it as needed.
Here is the current Service:
The service exposes a web service entry point, OrderStatus whose interface is implemented by convertWS mediator. ConvertWS transforms the incoming message as needed and routes the message to be processed by GetStatus, a Business Process Execution Logic (BPEL)-based component. The BPEL process accesses the database through the database adapter, OrderDB, to check order status and then writes the status to a flat file via the file adapter, writeQA.
We’d like to start with this service and then create a new, separate project and service that will have the same starting structure. Then we can make modifications to suit our particular needs.
We begin by creating the service composite template from the existing project.
- Create or find a SOA Suite 12c Service Composite to use as the basis for the template and open it in JDeveloper 12c.
- Right-click the project or composite name and select Create SOA Template.
- Click the Save In icon to select the location for storing the template: in the file system or file-based MDS for reuse. We are using the file-based MDS to enable easier sharing and reuse and use a single repository for storing assets.
- Select which parts of the service project to include in the template. You can choose to not add certain components or assets to the template.
- Save the template.
Now that the template is created, we can reuse it here in our application, or share it as a jar file or since we checked it into the file-based MDS, then we can share it with other developers who have access to the MDS.
To create a new service composite based on the template:
- Create a new SOA Project.
- Select a name for the project.
- Select the SOA Template radio button and then select the template form the list.
- The new project is created based on the template.
You can now edit the new project as you see fit.
The ability to create reusable templates is included with components: you can create a mediator or BPEL process and save that as a template for reuse. The process is similar to creating a template for a service composite.
- Right-click on the component to use as the basis for the template.
- Select Create Component template, and choose where to save it.
- Choose which files to bundle with the template and Finish.
Once the component template is created, you can view it in the Component Window.
To use the component template:
- Drag and drop the template onto your service component editor.
- Choose the name for the component and which files to include from the template.
- If there are conflicts with existing files, use the wizard to resolve them as needed and Finish.
When finished, you have a new component with the same configuration as the template added to your service composite. You can now edit the new component as needed.
In this blog we saw the benefits of using templates to create new SOA service composites and components that can save you development time and increase quality in your Oracle SOA Suite 12c service designs. The templates created can be stored in a local file system or the file-based MDS for reuse.
Get Started with the new Oracle SOA Suite 12c: Essential Concepts training course. View all Oracle SOA Suite training from Oracle University.
About the Author:
Joe Greenwald is a Principal Instructor for Oracle University. Joe has been teaching and consulting for Oracle for over 10 years and teaches many of the Fusion Middleware courses including Oracle SOA Suite 11g, Oracle WebCenter Content 11g and Oracle Fusion Middleware 11g. Joe’s passion is looking at how best to apply methodologies and tools to the benefit of the development organization.