Pages

OOW15: Cloud Bingo!

Even more than the previous years combined, this Open World was about the Cloud! The cloud is inevitable, so it seems. During my stay at Open World, I tried to find out more about the different cloud products, including their official acronyms.
To help my future self, but maybe some other people along the way, I created an overview of the clouds I met. This sure is not a full and completed list, but the once that I came across during my stay at OOW15.

ABCS : Application Builder Cloud Service
A visual development environment to create and host business applications.

CCS : Compute Cloud Service
A virtual compute environment, to run your applications on the public cloud.

DbCS : Database Cloud Service
Manage your database in the Oracle Cloud!

DCS : Document Cloud Service
Content collaborations by an Enterprise File synchonization and sharing tool in the cloud.

DevCS : Developer Cloud Service
Your automated development platform & tools in the cloud for the development lifecycle.

DVCS : Data Visualization Cloud Service
Visual analysis and self-service discovery, raw data to visual insights.

ICS : Integration Cloud Service
The platform to integrate your SaaS and on-prem applications.

IdCS : Identity Cloud Service
Manage your identities in the cloud.

IoTCS : Internet of Things Cloud Service
Connect and virtualize any device, real time predictive analytics.

JCS : Java Cloud Service
Deploy any Java application to the cloud !

MCS : Mobile Cloud Service
Easy and secure solution for mobile app development and integration with the back end.

PCS : Process Cloud Service
Design, automate and manage your business processes in the cloud.

SCS : Sites Cloud Service
Digital engagement by building rich community and marketing sites.

SNC: Social Network Cloud
A secure enterprise social network, integrates with PCS & DCS.

SoaCS : Soa Suite Cloud Service
Quickly provision a new SOA platform in the cloud, the SoaCS provides you the same power as the on-prem SOA Suite.

For all clouds and information on them, visit the Oracle Cloud site.

OOW15: Microsites with SCS on top of DCS

Most of us are familiar with or have at least heard of the concept of microservices, this year at Open World I also heard the term microsites more and more and I went on an investigation to find out more about the possibilities. I was surprised to find out I got more and more enthusiastic about this concept and the possibilities with the Oracle Cloud.
Microsites is a concept for a small temporary site. You can think of example like a page for a market campaign, an event, a product launch, etc. Oracle offers this with the help of two cloud services the Document Cloud Service (DCS) and the Sites Cloud Service (SCS).

The DocumentCloud Service is already live and ready to use, this is a tool to help you collaborate and share documents with others. It has a lot of out of the box functionalities, a mobile application and you can even get your content offline, for example to work on your ipad when disconnected.
In the concept of microsites you put all your web content, documents, images, etc in one or more folders on your machine. Use the sync master tool to synchronize these folders back to the document cloud. The DCS assets can then be used by the Sites Cloud Service.  

This is what the sync master tool looks like:


Oracle Sites Cloud Service will be coming soon, this is in terms of a couple of weeks. The documentation of SCS is already up and running, so you can check it out. Within SCS you have a WYSIWYG editor to create sites. The product is shipped with a few standard themes, but you can create your own or use an existing bootstrap theme to help you set up the basics for  the site. The layout management of the site is not done by the theme, but in the edit modus of the site.

In the left hand sidebar you can easily switch between the Documents in DCS and the Sites in SCS:

After this you can drag and drop out of the box components to create your website, add images/galleries, youtube videos, documents/folders and more. You can access any content in DCS and drag & drop it on the site. You can rearrange component on the page any way you like.

When you start editing you create an ‘update session’ in which you make several changes, this features helps with creating several changes and publish (or schedule) them as one batch to the live website. You can even work separated on different batches in different parts of the microsite. 

In the left hand side bar you see that you can drag & drop components from several menus, in the top bar you see a toggle to switch between edit and preview modus:


I am sorry the screenshots are a bit blurry and vague, but they are the best I have for now :)


OOW15: Announcing Oracle JET

This is the first blog in a series about Oracle Open World 2015 (OOW15), it focuses on the release of the Oracle JavaScript Extension Toolkit (Oracle JET). This was one of the big announcements this week in San Francisco. Oracle now has a JavaScript toolkit to create and build responsive websites.

One of the most heard questions is what is the different from Oracle JET with Oracle ADF? Will the one replace the other? Or will they coexist next to each other? All very valid questions, for now they will coexist next to each other. Oracle supports and invests in both products, focusing on a different kind of developer and a different kind of tool. You can see this in their own product as well, as a rule of thumb Oracle builds their SaaS application with the ADF and their PaaS applications with JET.

The biggest difference between the two is that ADF protects you from the underlying technology, works in a declarative way and is a server side framework. Oracle JET is more on the edge, as you would expect, from a JavaScript toolkit, more code centric and a pure client-side toolkit.

They share a lot of the same components and the Oracle DVT components work also in JET, this means the same DVT components work in Oracle ADF, MAF & JET. JET is based on libraries such as JQuery, JQuery UI & KnockOut, therefore you can use the key features (like 2 way binding) out of these libraries in JET as well. Behind the scenes Oracle has worked on this project for over 2 years, with the same development teams as the teams that work on ADF Faces & DVT’s.
JET is a modular toolkit in which you can pick ‘n mix your own JS libraries to extend more capabilities. Oracle has also build in support for internationalization & accessibility.

For now the use of Oracle JET is only for “the lucky few”, it comes with a Restrictive Use License (RUL) if you are using one of the few Cloud products (MCS, JCS, DevCS, ABCS: more on these in later blogs) Oracle offers today. However, they are looking for open source possibilities under the Apache 2.0 license. That they are working on open sourcing, but they did not give a timeframe on this yet. The release cycle of JET will be aimed at a minor release every two months and a major release every six.

So where do you start? First of all, make sure you check out the Oracle JET page for more cool stuff. Here you can find explanations, tutorials and code samples, there are cookbooks where you can check out the JET components and see the JavaScript and HTML code for these components. This tool works both ways, so you can copy and paste your JET component code in there as well to see the component it would generate!
You can use any code editor you prefer, whether this is Agnostic, NetBeans or some other IDE. They do however have build in support in the latest release of NetBeans, so it might be wise to let that be your weapon of choice.

Last but not least, Oracle Application Builder Cloud Services (ABCS) is fully build in Oracle JET, but it also produces Oracle JET code. So when you use the ABCS to create user interfaces, you can get the underlying JET code and continue working on that as a developer.


The order of the assign and transform in the Mediator

In my previous blogpost I pointed out the usage of an assign in a mediator component. This can be useful over the transform in several cases. Besides using one of the two, it is also possible to use them both in the same route. I would not advise using both the assign and the transform to manipulate the same data object, however this is possible.

If you want to do this, it is good to keep in mind in which order the mediator handles the manipulations. I used the same example from the previous blogpost and added an transformation in the mediator.

In the transform, I copy the firstname from the input, to the lastname of the output:
 

Resulting in both a transform and an assign in the mediator:
 

I deployed the service to the Enterprise Manager and will fire the following test:
 

The response already clarifies what happened here, the transform is fired first and only after the transform is done, the assign is being processed, because the input is the same as the output:
 

However, to verify this assumption, we will have a closer look at the flow trace, in the flow trace, we open the instance of the mediator:
 

In here we can clearly see that the xsl transformation is done before the assign.
Keep this in mind when you want to use both the transform as well as the assign option on the same data object in the mediator.


Use the assign instead of a transform in the Mediator

When building less complex services, your BPEL process often uses input and output that is pretty much like the request and response on the wsdl. We would still want to decouple using the mediator component, so there is an extra transformation there which is pretty straight forward.
Sometimes it can be useful, easier and faster to use a assign in the mediator instead of a transform.

Imagine an pretty straight forward xsd:


I created an example BPEL process, also pretty straight forward. The Person is both the input and the output, all the BPEL process does is copy the input to the output and reply it:
 

In the Create Web Service dialog we create a WSDL based on the same XSD, also with a Person as input and output:

As said, because of decoupling, we would still want to have a mediator between the exposed service and our bpel process. We create a mediator and wire it both to the service and to the bpel process.
However, when editing the route, we usually use a transformation to map the input to the output, in this case, we are going to use an assign:

When you click the assign button, this also pop ups and Assign Values dialog, here we can wire the input element to the output element:

This way we use an assign in the mediator instead of creating an xsl transformation for this pretty straight forward transformation.


Switch the Audit Level to Development mode

With JDeveloper 12c it is now possible to run your SOA Suite against the Integrated WLS. However, by default the Audit Level of this server is Production mode which means you do not get to see details when looking at the flow trace of your service.
If you do not change your running mode, the flow trace window will look like this:


We will switch the Audit Level of your local SOA domain to Development mode, to get more info in the flow trace. Right click on your soa-infra, go to the SOA Administration and select the Common Properties:



Change the Audit Level to Development and click Apply:



You do not need to restart your server after this. However, you do need to test your service again. Test your service and again go to the flow trace, the result should now look like this:



You can now press the ‘View Payload’ to see the payload of your transformation:




Run ADF & SOA on the IntegratedWLS in separated domains

In JDeveloper 12c, it is possible to run SOA Suite on the InternalWLS, which is a great feature. However, once you have done this, your domain will be filled with SOA extensions. Meaning the server start up time will increase drastically.
When you do both ADF & SOA development, this can be annoying when you just want to run your ADF application and the IntegratedWLS is busy starting up the SOA domain. One way to avoid this is to run two different JDeveloper instances with two different Jdev Homes configure.
In this blog I will describe you how to set this up.

First of all, I got my ‘normal’ JDeveloper for ADF development, this is installed on my C drive, under: C:\oracle\JDev1213, if you navigating to the Oracle_Home\jdeveloper\jdev\bin folder and open the jdev.boot file, you will see the variable ‘ide.user.dir.var’:


Now I recently installed a second JDeveloper 12c in a different directory, this JDeveloper is installed with the SOA extensions, I installed this on the C drive as well, but in the folder C:\oracle\JDevHomeSOA. Within this JDeveloper folder, there is also a jdev.boot file under the folder ‘\jdeveloper\jdev\bin’, however, I changed the ‘ide.user.dir.var’ to a specific _SOA variable:


Now all that is left to do is to create two new Environment Variables, pointing to different JDevHome directories:


This will create two different domains for each JDeveloper, keeping your environment clean and tidy!