Thursday Jul 07, 2016

Introducing: The Client Side Event Bus in Oracle JET for decoupled interactions across templates, view models and modules with Knockout Postbox by Lucas Jellema

clip_image002Well organized exchange of client side events has been something of a holy grail for client side web development to me. I do not like these direct interactions between components that should not even know about each other. On the other hand – earlier this week I could not find out how to make components work together at all – not even in a not-so-nice-way. I decided to drop Geertjan Wielenga an email ; he is from Oracle and is one of the leading bloggers on Oracle JET. I asked him on his thoughts on a ‘client side event bus’ in JET. It turned out that he had just (as in a few minutes prior to my email) published two articles on his blog that touched on this subject. They describe how modules and template specific view models could interact in a KnockOut application such as Oracle JET. That was a great starting point. From there, I soon Googled my way into a pretty, nifty, little KnockOut extension called Postbox, introduced in 2012 and last updated in the Summer of 2015. It turns out this extension provides the event bus for client side events – in a very simple way.

The very short story:

  • Observables and regular JavaScript functions can subscribe to global topics
  • Anyone can publish to these global topics (Observables can even be tied directly to a topic, so every value change is immediately published)
  • When a message is published to a global topic, all subscribers are notified: subscribed observables are immediately updated with the published value and any subscribed functions are invoked with the published value as a parameter

This sounds simple (I hope) and it is!

In this article I will apply the Postbox mechanism to the HRM application I worked on in my previous article with Departments and Employees synchronization (Master – Detail synchronization in an Oracle JET rich client application against a REST API)

The end result will be the following interaction chain: Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Thursday Jun 30, 2016

Extend Oracle JET with Table on REST API and Deploy to Node.js in Application Container Cloud by Lucas Jellema

clip_image002In this article, I will describe how I took the Oracle JET Sample application that I deployed to Node.js – locally and in the Oracle Application Container Cloud-and extended it with a new tab containing a table component that is data bound to a collection populated from a REST API that also runs on Application Container Cloud and accesses a DBaaS instance.

The initial application was described in this previous article (Deploying an Oracle JET application to Application Container Cloud and running on Node.js); in that article I took the Oracle JET Starter Template Quickstart sample application, configured it to run on Node.js (locally) and then configured it for deployment on Application Container Cloud and subsequently ran it on the cloud. In this article, I will leverage the REST API exposed from a Node.js application Data API discussed in an earlier article: REST API on Node.js and Express for data retrieved from Oracle Database with node-oracledb Database Driver running on Application Container Cloud. This Data API connects to a DBaaS instance and retries data from the DEPARTMENTS table in the HR schema.

Extending the sample application with an additional tab that can be selected and shown, containing a table component with data binding to a newly defined viewmodel did not prove trivial at first. This was my first encounter with some of the frameworks included in JET – Require and especially Knock Out – and I ran into many small typos and fairly large misunderstandings. Now I believe I nailed it – and this article is the proof. Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Sunday Jun 12, 2016

Master – Detail synchronization in an Oracle JET rich client application against a REST API by Lucas Jellema

clip_image002In a recent article (Extend Oracle JET with Table on REST API and Deploy to Node.js in Application Container Cloud) , I have described how I created a data bound Oracle JET application with a rich JET table component that reads its data from a REST API (that gets it from a DBaaS instance in its turn). The application developed in that article shows a table with Departments – read from the HR database schema. A nice next step it seems is to show a list of employees as well – and only the employees that work in the currently selected department in the departments table. When a new department is selected, the list of employees should be refreshed to align with the selected department.

The application I am creating will look as follows – after deployment onto the Application Container Cloud that is:

The steps for extending the application with a single table – Departments – to support a synchronized list of Employees are:

  • Add table component to the hrm.tmpl.html template file
  • Add support for single row selection to the existing table component for departments; also specify an event listener to consume the row-selection event
  • Define the Employee model and Employees Collection in the hrm.js file that defines the view model for the hrm.tmpl.html template in a similar way as the existing Department Model and Departments Collection (note: the data is fetched from a URL that contains a department identifier; this is will provide the linking pin for the synchronization between the departments table (with the selected row) and the employees table Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Thursday May 19, 2016

Linking Application Container Cloud to DBaaS – Expose REST API from node.js application leveraging node-oracle-database driver by Lucas Jellema

clip_image002In a recent article, I discussed the deployment of a simple Node.js application to the Oracle Application Container Cloud. I take this one step further in this article: I extend the node.js application to connect to a DBaaS instance using the Oracle node.js Database Driver and expose a REST API to retrieve data (departments, if you want to know).

This figure illustrates what this article describes:

The steps we go through in this article are:

  • Create the Node.js application with node-oracledb based database interaction
  • Deploy the Node.js application to Application Container Cloud
  • Configure the application on Application Container Cloud: service binding and custom environment variables
  • Access the REST API exposed by the Node.js application
  • The node-oracledb driver connects node.js applications to an Oracle Database. It is an open source project with Apache 2.0 license. It is maintained by Oracle and is under active development. Sources can be found on GitHub.The node-oracledb driver is available out of the box in a Node.js Application Container Cloud instance. No special steps are required to have access to this driver from a node.js application that is deployed to the Application Container Cloud instance. All you need to do is include the oracledb module in the node.js application (using var oracledb = require(‘oracledb’);) and of course interacting with the database in the regular way supported by node-oracledb.
Create the Node.js application with node-oracledb based database interaction

The application is a very simple one. It handles requests – and responds only in anger to a request that goes like this: http://host:port/departments. If that is the url – then the relative url is just /departments and that is what the code responds to in function handleRequest(). When you check the code in dataApi.js, you will find a few things of notice: Read the complete article here

WebLogic Partner Community

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Technorati Tags: Lucas Jellema,PaaS,Cloud,ACC,Application Cloud Container,WebLogic,WebLogic Community,Oracle,OPN,Jürgen Kress

Wednesday May 18, 2016

Deploying a node.js application to the Oracle Application Container Cloud Service by Lucas Jellema

clip_image002This article describes my first steps with the fairly new Oracle Application Container Cloud [Service]. At this point in time, Oracle Application Container Cloud includes Oracle Java SE Cloud Service, which lets you deploy Java applications to the Oracle Cloud, and Oracle Node Cloud Service, which lets you deploy Node.js applications to the Oracle Cloud. In the near future, support will be add for different types of applications, such as Ruby, Python, and PHP. Through Service Bindings to other Oracle PaaS Service instances, it is easy to integrate applications running on the Application Container Cloud with for example a DBaaS instance or the Messaging Cloud Service. I will cover that integration in a follow up article.

This article will show how a simple node.js application is made to run on the Application Container Cloud. This application serves up a static HTML file that contains JavaScript to access a REST API from the browser. This REST API is also implemented by the node.js application and the corresponding REST calls are handled in the Application Container Cloud. Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Thursday Apr 28, 2016

Deployment of a Java EE application to Java Cloud Service (Oracle Public Cloud JCS) by Lucas Jellema

clip_image002In this previous articleGetting started with Java Cloud Service on the Oracle Public Cloud (WebLogic as a Service) – I have taken  you on a introductory tour into JCS. That article describes how to get going – how to provision a JCS instance – associated with an instance in DBaaS and with backup set up with Storage CS.

In the article you are currently reading, I show you how to use this instance for deploying a Java EE application onto – and subsequently invoking that application.

Since the same consoles are available to us with JCS as with on premises WLS, we can perform an application deployment in the same way from the console by uploading a WAR or EAR file as we can do on premises. I tried my hand at a fairly large application – without any Java EE dependencies (no EJB, JMS or JDBC data source requirements): the ADF Faces Rich Client components Demo application – available from http://www.oracle.com/technetwork/developer-tools/adf/downloads/index.html . The downloaded file is about 105 MB. The subsequent deployment of this file to JCS fails: the step takes quite long – because 105 MB have to be uploaded again, from my laptop into the Oracle Public Cloud. This console could be extended by Oracle perhaps to also offer to upload directly from a URL. On three attempts, after about three minutes into the upload, the deployment process fails. Either on the JCS end or in the browser to server communication is a problem. I am not sure what it is caused by. For now, I will simply try my hand at a smaller WAR.

Plan B or Take Two at deploying a Java EE application

Instead of looking around for a suitable ready to deploy WAR file, it is probably even more rewarding to quickly develop a Java EE application, build it as a WAR file and deploy it to my new JCS instance. Using JDeveloper, I quickly whip up a JAX-WS application: a simple Java Class that with some JAX-WS applications is turned to a SOAP Web Service (by right clicking the Class and selecting the option Create Web Service):

The functionality of this service should be fairly obvious from the code. The WSDL that the derived service exposes can be previewed in JDeveloper:

Deployment of the service can be done from the project navigator: right click on the ViewController project: Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Technorati Tags: Lucas Jellema,JCS,Java Cloud Service,PaaS,Cloud,WebLogic,WebLogic Community,Oracle,OPN,Jürgen Kress

Wednesday Apr 27, 2016

Getting started with Java Cloud Service on the Oracle Public Cloud (WebLogic as a Service) by Lucas Jellema

clip_image002The Java Cloud Service (JCS) in the Oracle Public Cloud allows me to deploy Java EE applications such as JAX-RS and JAX-WS REST and SOAP Web Services, Servlet | JSP | JSF Web Applications, EJB and JMS artifacts and ADF applications to the public cloud and make them accessible to developers, testers and end users anywhere in the world. For components to be deployed to the JCS – I have to do nothing special (!) during development or deployment: anything that runs on premises will run in JCS.

In this article, I will describe some of my initial experiences with JCS: what did I have to do to get going the first time – from having nothing more but a (trial) subscription to JCS to deploying and running my first Java EE application on JCS. I thought this would be a very long article with a large number of tips and tricks and with deeply technical steps. I felt some reluctance to even get going – feeling a little daunted by a new world full of new terminology. As it turned out – this is not a long article and it certainly does not contain a lot of tips. My initial reluctance was misplaced. JCS is just WebLogic – hosted on a different machine than my laptop and with a different provisioning interface. The amount of cloud terminology is limited (cloud account, identity domain, service instance is probably the bulk of it – along with simple tooling: dashboard, service console). JCS builds on three other Oracle Public Cloud Services that we need to be aware of: DBaaS (Database), Compute Cloud Service and Storage Cloud Service.

You do not need guidance from me for all the steps you need to go through. I worked with an excellent tutorial on Oracle Help Center – Getting Started with Oracle Java Cloud Service – and I heartily recommend you do the same.

The steps (described in this tutorial) that you need to go through in order to have your first Java EE application running are:

  • (do: 5 minutes | then wait: days up to months) Get a [Trial] Subscription to the Oracle Java Cloud Service – for your Oracle account (the same one you use for OTN and any other interaction with Oracle); an Oracle Java Cloud Service trial environment or purchased subscription comes with Oracle IaaS Public Cloud Services, which provides you access to Storage CS and Compute CS – both of which underpin the JCS instance;
    Note: Database Cloud Service is a prerequisite of Java Cloud Service and is priced separately. When you request provisioning of an instance of JCS, you need to specify the DBaaS instance that it should make use of.  Read my previous article on DBaaS to get going with the Oracle Database as a Service offering and prepare a database instance.
  • (do: 5 minutes) Associate the [trial]subscription with an existing or a new Oracle Public Cloud account (and thereby to an identity domain)
  • (do: 5 minutes) Generate SSH keys (you can reuse the SSH key pair you may already have created to get going with Oracle DBaaS) Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Wednesday Jan 20, 2016

Declarative Web User Interface Development by the Citizen Developer – Introducing the Oracle Application Builder Cloud Service by Lucas Jellema

clip_image002The Citizen Developer – also known as the Line of Business user – is the non-technical but still somewhat IT-savvy member of a business department. She may configure web surveys, create macros in Excel spreadsheets, perform complex data analysis or maintain a departmental web site. She does things that touch upon the responsibilities of the corporate IT department, probably knows some people in that department to consult with and she may want to do even more. Gartner identified the citizen developer a few years ago and Oracle has identified her as a persona it wants to cater for with the public cloud.

The Process Cloud Service allows the citizen developer to design, run and manage simple human workflows. Document Cloud Service and Social Network are available to share and collaborate on documents; they both are integrated with the Process Cloud Service. Simple SaaS-2-SaaS integrations can be configured with the Integration Cloud Service. With Oracle Data Visualization Cloud Service, the citizen developer can play ‘data detective’ on data uploaded from Excel spreadsheets and with Oracle Big Data Discovery Cloud Service, some similar slice-and-dice actions can be done on big data stored on Hadoop.

Two cloud services allow the citizen developer to create an interactive application. The MCS (Mobile Cloud Service) provides the Mobile Application Accelerator (MAX for friends) feature that can be used to declaratively compose a MAF mobile app. The Application Builder Cloud Service (ABCS) allows our line of business user to develop a web application in a declarative manner. ABCS hosts the application, does access management, manages custom data objects and takes care of interactions with REST services. As Oracle puts it on https://cloud.oracle.com/ApplicationBuilder :” Oracle Application Builder Cloud Service enables business users with no previous programming experience to rapidly create web and mobile apps, minimizing dependence on IT departments and reducing infrastructure costs.” In order to create a new web application – hosted by ABCS – one has to go through the following steps: Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Thursday Aug 06, 2015

Key take-aways from the Oracle PaaS Cloud announcements – Integrate, Accelerate, Lead by Lucas Jellema

clip_image002Monday June 22nd was the launch date for Oracle for 24 (and more) Cloud Services. June is traditionally an important month for Oracle when it comes to product launches and important announcements. This year is the same in that respect. The announcements came in a many-hour live webcast including a 45 minute presentation by Oracle CTO Larry Ellison (see videos from Oracle Cloud Platform Launch). I have harvested some of the most relevant slides from this presentation – that capture the essence from his announcements (or at least the things that stood out to me).

See some other relevant resources regarding these announcements:

Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Monday Jul 20, 2015

Java Web Application sending JSON messages through WebSocket to HTML5 browser application for real time push by Lucas Jellema

clip_image001This article describes a Java EE 7 web application that exposes a REST service that handles HTTP POST requests with JSON payload. Any message received is sent through a Web Socket to the web socket (server) endpoint that is published by a Java Class deployed as part of the web application. A static HTML page with two associated JavaScript libraries is opened in a web browser and has opened a web socket connection to this same end point. The message sent from the REST service endpoint to the web socket endpoint is pushed through the web socket to the browser and used to instantly update the web page.

The specific use case that is implemented is a simple web dashboard to monitor a movie theater: the current number of people in each of the four rooms of this movie theater is observed. The REST service receives the actual spectator count and through the two web socket interactions, this count ends up in the browser and in the visual presentation.

Below you will find a step by step instruction for implementing this use case including all required source code. The implementation uses only standard technologies: Java EE 7 (including JAX-RS and Web Socket ) and plain HTML5 and JavaScript – no special libraries are involved. The code is developed in Oracle JDeveloper (12c) and deployed to Oracle WebLogic  (12c). However, given that only standard components are used, the same code should work equally well on other containers and from other IDEs.

Note: for the use case presented in this article, a somewhat simpler solution would be possible using Server Sent Events (SSE) – a simpler and lighter weight approach than the use of web sockets. SSE is uni-directional (server to client push only) and that of course is exactly what I am doing in this particular example.

The steps will be:

· Implement the REST service to handle json payloads in HTTP Post requests

· Implement the WebSocket endpoint

· Interact from REST service endpoint with WebSocket (endpoint)

· Implement the HTML and JavaScript web application to present the live status for the movie theater based on the web socket messages

The starting point is a basic Java EE web application – with no special setup in web.xml or other files.

The final application looks like this: For JDeveloper 12c users: Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Thursday Jun 25, 2015

ADF 12c – Allow user to personalize the form items at run time using MDS based Change Persistence By Lucas Jellema

clip_image002The requirement is easily written down: the web page contains a form with multiple form items. Each user should be allowed to personalize the form at run time. This personalization entails the ability to hide and show form items. When user has decided to hide and show specific items – this decision should be persisted across sessions so that when the user logins at a later date, the form items she has hidden are still invisible and the displayed ones displayed.

This article describes how to implement this particular requirement in an ADF 12c Fusion Web Application. Note: the same steps and code will do the job for ADF 11g.

ADF has built in support for customization – both at design time and run time. Customization can be defined at various levels (or layers as the terminology is). One of these layers – typically the most fine grained – is the user level. Customizations at user level are frequently called personalizations.

In order for an ADF web application to support customization and personalization, we have to configure a number of things:

· a user-level customization class has to be configured in the adf-config.xml

· ADF Security has to be configured – so users can be identified (so their personalizations can be stored and retrieved)

· customizations has to be enabled in the properties of the View project

· the specific customization we are interested in (personalizing the visible or rendered attribute on inputText components) has to be enabled in the adf-config.xml file

· a managed bean is configured that receives the updated form item definitions and sends them to the ADF Change Manager that writes them to MDS

· a simple JSF page is developed with a form and a shuttle component to indicate which form items are to be hidden or displayed

The page looks as follows in this example: Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Wednesday May 20, 2015

Docker – Take Two – Starting From Windows with Linux VM as Docker Host by Lucas Jellema

clip_image002My first attempt with Docker was from my Windows host machine using boot2docker, as described in this article: https://technology.amis.nl/2015/03/15/my-first-steps-with-docker-starting-from-windows-as-the-host/. Boot2docker is a great tool for being able to work with Docker on a Windows machine. However, I ran into limitations – such as not being able to create containers with the GUI applications running in them. Besides, Linux seems to be – for now at least – the more natural environment for Docker. So decided to create a Linux VM – actually a Virtual Box VM – that would serve as my Docker host.

In this article I will walk through the steps I went through in order to get this Linux VM running on my Windows host and subsequently turn that VM into the Docker Server in which one or more containers will be running – eventually to serve as demo and training environments, for example with Oracle Databases and Middleware. After all, Mark Nelson showed the way in this wonderful article: https://redstack.wordpress.com/2014/11/14/gettingn-to-know-docker-a-better-way-to-do-virtualization/.

I decided to closely follow Mark’s lead in his choice of Linux VM: Ubunty 14.04.1, to be created using Vagrant (about which I have blogged before – for example https://technology.amis.nl/2014/06/26/provisioning-an-oracle-11g-database-virtualbox-vm-with-vagrant-and-puppet-for-dummies/ ).

Stage One – Create Ubuntu VM using Vagrant

I have both Vagrant and Virtual Box set up on my laptop. From that starting point, I open a command line window and create directory into which to create the Vagrant configuration for the VM. Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Monday May 04, 2015

ADF Masterclass 2015 by Lucas Jellema

This repository contains the source code for the demonstration for the ADF Masterclass 2015 - initially presented in Dubai during the Expert Summit. Get the training material here.

clip_image002

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Sunday Apr 26, 2015

Docker – Take Two – Starting From Windows with Linux VM as Docker Host by Lucas Jellema

clip_image002My first attempt with Docker was from my Windows host machine using boot2docker, as described in this article: https://technology.amis.nl/2015/03/15/my-first-steps-with-docker-starting-from-windows-as-the-host/. Boot2docker is a great tool for being able to work with Docker on a Windows machine. However, I ran into limitations – such as not being able to create containers with the GUI applications running in them. Besides, Linux seems to be – for now at least – the more natural environment for Docker. So decided to create a Linux VM – actually a Virtual Box VM – that would serve as my Docker host.

In this article I will walk through the steps I went through in order to get this Linux VM running on my Windows host and subsequently turn that VM into the Docker Server in which one or more containers will be running – eventually to serve as demo and training environments, for example with Oracle Databases and Middleware. After all, Mark Nelson showed the way in this wonderful article: https://redstack.wordpress.com/2014/11/14/gettingn-to-know-docker-a-better-way-to-do-virtualization/.

I decided to closely follow Mark’s lead in his choice of Linux VM: Ubunty 14.04.1, to be created using Vagrant (about which I have blogged before – for example https://technology.amis.nl/2014/06/26/provisioning-an-oracle-11g-database-virtualbox-vm-with-vagrant-and-puppet-for-dummies/ ).

Stage One – Create Ubuntu VM using Vagrant

I have both Vagrant and Virtual Box set up on my laptop. From that starting point, I open a command line window and create directory into which to create the Vagrant configuration for the VM. Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Search

Archives
« July 2016
SunMonTueWedThuFriSat
     
24
25
26
27
28
29
30
31
      
Today