Category Archives: Blog

Using CouchDB with Uniface

I won’t repeat any definitions of what NoSQL databases are, nor a review of any specific products. I’ve read plenty about NoSQL databases and I think that the general view of developers is that it is one more tool in the arsenal of application development. I generally believe that you should choose the right tool for the job at hand.

So, you may get that task one day where the advantages of using a NoSQL database outweigh the disadvantages. Can, or how can you use this database with Uniface? The answer definitely depends on the specific NoSQL database product. Between them all, they have a large variation in their APIs and data structures. For that reason I will just describe my experiences doing some prototyping with CouchDB from Apache. Be aware that this is slightly different to Couchbase, which appears to be a commercialised offshoot from what Apache took on board as an open source project. For brevity, I refer you to the website for information about CouchDB’s characteristics:   https://couchdb.apache.org/

The major characteristic of CouchDB is that the documents stored in the database are in JSON format. While investigating another project, I stumbled upon a convenient source of JSON formatted documents that I could use to store in my CouchDB database. I hope that you aren’t offended by simple Chuck Norris jokes. It is a unique genre that not all will enjoy, but it served my purposes adequately. Thus in studying my prototype, you could imagine how you would handle more business related data.

I have provided a sample form in the community samples part of Uniface.info. All you need to do, besides compiling that one form, is to download and install CouchDB from the earlier link provided. I downloaded the Windows version. I manually created the “cnjokes” database using the CouchDB provided Futon utility, also installed with the Couch DB. I also manually defined the design document “vcnjokes”; more about that later.

The top part of the COUCHTEST01 form is really a “utility” area, where you can manually enter URIs and run requests against the “cnjokes” database.   These requests use the UHTTP internal Uniface component. The way the CouchDB API is structured gives you a very RESTful web service interface, though there are some comments on how RESTful CouchDB really is, within their online tutorials. The results of the calls are available in the message frame.   You can press the GET button without adding anything to the URI and you will see some global information about the “cnjokes” database. Overall, this “utility” is not as flexible as the CouchDB provided Futon utility, but it might be helpful during further Uniface development.

The 4 buttons, and accompanying entity and fields provide the real prototype; effectively demonstrating a CRUD lifecycle of managing CouchDB documents. The UHTTP component is used to obtain a CN joke in JSON format from an internet website, and then the UHTTP component is used to interact with the localhost CouchDB server. The document format is deliberately unchanged between the external joke website and CouchDB. However, you could manipulate the JSON before storing it in CouchDB if required, using Structs. Note that I have used $uuid as the basis for assigning a document ID.

The other 3 buttons query the CouchDB database using views. Ad-hoc queries are not possible in CouchDB. The 3 views are defined in a single “design document” called “vcnjokes”. The source for that design document are provided with the sample download, as comments for the COUCHTEST01 form.

  • Button “Get all current jokes from CouchDB” uses view “joke_by_jokeid”. All jokes are retrieved, and sorted by joke_ID, but only a few columns are selected. It cannot be edited as the revision ID is not available. Note that escaped quotation symbols in the data are displayed as quotations.
  • Button “Get all nerdy jokes from CouchDB” uses view “nerdy_joke”. The jokes list is filtered to those that have a category of “nerdy”. This list also cannot be edited.
  • Button “Get all current data from CouchDB for edit” uses view “all”. This view references all of the document and so all fields, including revision ID, are available. Thus editing can be done, and when stored, the new revision number is updated. Note that escaped quotation symbols appear as stored, for ease of updating.

When preparing the JSON for display in a Uniface form, it is certainly necessary to use Structs to manipulate it into the Component data structure. In fact the choice of the external data structure of the form entities is quite arbitrary. CouchDB has no fixed schema. Thus you can never be sure that an external application won’t add data that renders your entities and fields obsolete. All I could do is generate a useful number of jokes, and observe that some of them have one category with a value of “nerdy”. However, I can see that the category is defined as a JSON array, and so I make sure to set   $tags->jsonClass = “array” before converting the struct to a JSON string. This is what led to the one to many relationship between CNJOKE and JCATEGORY. With my CouchDB data set, I verified my schema by manually adding several extra categories to some jokes, using structure editor commands to add and remove occurrences (tool tip text will assist you).

Hopefully this prototype demonstrates how modern features in Uniface allow integration with other modern software systems.

 

Our Day by Day Highlights of MWC Barcelona

It was the first time we participated in MWC15, and to sum it up in a few words: Totally exceeded our expectations! Here’s a day by day recap of our time in the “trenches.”

Day 1:

It was a very interesting first day. There were initially some quiet moments, but then things picked up and all demo stations (3 of them) plus the 5 devices were being used by our Uniface colleagues were all busy and everyone engaged in conversations. It was awesome. The energy flowing around the booth and within the team was fantastic. The day flowed with up and down time and in general with a lot of positive reactions.

Danny (account manager) attended Mark Zuckerberg’s keynote presentation. Even the Uniface (freelance) photographer ;-) got a great picture of the King of Spain!

Arriving at the event

Arriving at the event

The King of Spain who attended the event

The King of Spain who attended the event

Day 2:

After an early team debriefing at the booth to the Uniface crew, the energy was good, we had a good synergy between the whole crew and the roles were working fine. We worked hard, including sending people canvasing around to talk to people around our section “App Planet” which by the way it is the perfect spot to have Uniface. Also, it was clear that our tag line “Design your mobile enterprise” is spot on.

Remind me to tell you later about my public transport adventure after the day was over, I mean  Tianle, Thomas, Christophe and myself going back to the hotel with the idea to see a bit more of the city. And we did, including walking the “extra” mile … literally!

Busy time at the Uniface booth

Busy time at the Uniface booth

Day 3:

The Uniface crew went through a metamorphose with some people leaving and new people coming. I must confess that as a former ‘amateur’ football coach/trainer, you know you never change a winning team; so I was a bit worried. Luckily for me, this was not a football match, so everything transitioned perfectly fine.

Again the day passed on the blink of an eye. For me, the best way to describe it is using as reference the differences between the length of technical demos which are: on day one demos lasted approximately 15 minutes, on the second day those lasted 25 minutes and on the last day these were over the 35 minutes average; the main reason being the interest of the prospects (of course) and the type of questions they asked.

At the end of the day, people were partying all over the exhibition halls, listening to music and having drinks. I have a complaint which I want to make public now, Danny Ragowan went to drink tequila with my fellow Mexican countrymen on my invitation and he left me behind at the booth. I was invited earlier on the day when I visited them. (On his behalf I need to say I was involved in the last demo.)

Part of the Uniface Crew

Part of the Uniface Crew

More booth traffic

More booth traffic

Day 4:

The experience has been unreal – In my wildest dreams I would not have imagined such positive results of MWC15 for Uniface. The people we talked to were interested in the core Uniface message, which means that a cross-platform model-driven development and deployment environment is what people are looking for.

Besides the above, how about our approach to the market by extending technologies (CHUI, C/S, WEB, RIA, Mobile) in the spirit of shielding the business from technological evolution and then again empowering the developers to embrace those and in case needed go the depth necessary to solve the business requirements. And guess what? It did all of these and more. Because even fellow exhibitors considered that an incredible strength of Uniface.

As a bonus, the Uniface culture also shined at the event. The ambiance and behavior will be remembered and we heard on several occasions: “Here come the nice guys in the white shirts!”

Packing up at the end of MWC

Packing up at the end of MWC

Showing Uniface’s Mobile Capabilities at Mobile World in Barcelona

When you think of enterprise mobile apps, what is the first type of app that comes to mind? That’s actually a more difficult question than we thought when we first started off creating a mobile app demo to showcase at Mobile World Congress in Barcelona. We decided on an insurance policies app, which we will show on both iOS and Android devices. The event is already taking place next week, and luckily all of our preparations and hard work are falling into place.

Uniface will participate as an exhibitor in the App Planet Exhibition Area (stand number: 8.1K79) at the event. Here we will demo the power of Uniface Mobile to create cross platform mobile applications and showcase how we can address the current opportunities and challenges of developing apps for enterprise mobility.

When building a demo app specifically for an event, it’s important to be able to show someone quickly the power of your solution.  With Uniface, this is no different, however while we can (also) make flashy front-ends, the back-end integration of a mobile app is where you see the real benefits.

Preparing the Uniface demo for Mobile World Congress
Preparing the Uniface demo for Mobile World Congress

So take an insurance app that allows a user to view their various policies on their mobile, be able to submit a claim to their insurance company with all the relevant information and accompanying photos—and all of this seamlessly integrating into the back-end system. Take that same app and add a piece of business functionality which would normally lead to lengthy change management and development time, and see how Uniface can build a component in minutes. That is the power of the Uniface mobile solution, and what we are looking forward to showing at MWC in Barcelona.

Over the course of four days, 2-5 March 2015, 85,000 delegates will hear from thought leaders from the most important companies in mobile and adjacent industries. They will be able to see the newest technologies and most innovative products available in a cutting-edge Exhibition featuring more than 1,900 exhibitors, and participate in App Planet where more than 200 app-focused cutting edge exhibitors, including Uniface, will showcase the newest apps, gadgets, devices, and technology in the mobile ecosystem.

If you’ll be in Barcelona for MWC 2015, contact us to arrange a meeting or drop by our booth in the App Planet Exhibition Area. In the mean time, visit go.uniface.com/mobile to learn more about Uniface Mobile.

How Uniface Harnesses Diversity to Drive Innovation

Author: Andrea Chatterson, Human Resources Business Partner, Uniface

Last year, I had the opportunity to join Uniface and further my career with a dynamic, successful company.  During my first year with Uniface, I’ve often been asked what attracted me to the company?

What I found was a combination of a highly skilled workforce and a company culture which fosters an open and innovative environment for employees to collaborate and express ideas.  Being a HR Business partner, I have a unique insight into what sets Uniface apart from other companies and what makes it an exciting and motivating place to work: diversity, empowerment and emotional intelligence. The Uniface approach is refreshing,  because it taps into key drivers of innovation and individual empowerment.

Workplace Diversity

At Uniface, diversity in cultural experience is a key element of our work culture: currently we have over 32 different nationalities working across 14 countries. Forbes has recognized that diversity breeds business innovation and is essential to the growth and prosperity of any company. This includes, diversity of perspectives, experiences, cultures, genders, and age.

As a result, we pride ourselves on developing this intercultural approach to recruitment and have learned to recognise the value it has brought to the company. This diversity within the organisation has created an openness to new ideas, and made people highly receptive to solving problems in new ways.

Compelling evidence from the Harvard Business Review shows that diversity unlocks innovation and drives market growth. Six of these behaviours have been found to unlock innovation across the board:

  • Ensuring that everyone is heard
  • Making it safe to propose novel ideas
  • Giving team members decision-making authority
  • Sharing credit for success
  • Giving actionable feedback
  • Implementing feedback from the team.

At Uniface, we’ve worked really hard to establish a culture in which all employees feel free to contribute ideas and share in the success of those ideas.

Empowerment and Collaboration

One way in which we promote our open culture is through scrum methodology and a monthly sprint pitch, which is all about collaboration. We achieve collaboration by engaging each and every member of the team.

This has the additional benefit of being a trusted forum with a free format so individuals get to gain visibility on how they fit into the process of reaching targets while practicing skills we value. Forbes research shows that a diverse and inclusive workforce is critical to driving the creation and execution of new products, services, and business processes. At Uniface, we harness diversity to give us a competitive advantage in the market place.

Emotional Intelligence

At Uniface, it’s not just about hiring the “smartest” people. We know we can do that. So, we also look for what Daniel Goleman has described as ‘emotional intelligence’ and in particular, we look for people who can demonstrate proficiency in managing relationships and building networks. This includes an ability to find common ground and build rapport with others. In fact, this is probably what separates life at Uniface from other companies I’ve worked in.

So at Uniface, building a uniquely motivating and empowering workplace culture comes as a result of the type of employee we actively look to recruit and the type of workplace environment we co-create.

If you think you’d like to join us here at Uniface, you can always check our job listings at https://uniface.has-jobs.com/  – we’d love to have you become a successful part of our global team.

What’s your experience of working in diverse teams? Has it been positive? Let me know what you think supports an open and innovative culture. We’re always looking for ways to improve.

There may be trouble ahead for mobile commerce; Part 2

By Clive Howard, Principal AnalystCreative Intellect Consulting

Read Part 1 of this blog post here

Payments made easier and more secure with a good mobile wallet

Once again the most likely solution to this issue is mobile wallets. By using a mobile wallet the customer does not have to enter any payment information. This greatly reduces the work that they have to do to make a payment. The customer is simply passed into the mobile wallet which already has their payment information, they complete the transaction and are then handed back to the website or app.

A further benefit to this approach is that the actual payment element of the process has been both optimised by a third party payments specialist and tested by them as well. This removes two major burdens from the development team.

Mobile wallets are therefore the answer to the two top reasons why consumers are reluctant to make payments on a mobile device. If this mobile wallet is provided by a bank or credit card provider then people are more likely to try it. This should be good news for any organisation looking to increase revenue from mobile consumers. Especially when one considers that eMarketer has found that there is a desire to buy via mobile, particularly in the younger age groups. 48% of 18-34 year olds said that they would like to pay this way.

Mobile payments present new opportunities

Within the many different markets with an interest in mobile commerce one of particular note would be travel and transportation. This market has been working with different ways to incorporate mobile into a customer’s experience across the end to end lifespan of a journey. An example is the number of airlines that now offer mobile boarding passes. A further example would be the use of the mobile device as a ticket using NFC such as on buses. With many journeys having multiple stages that may involve different modes of transport from a variety of providers a single form of fast payment is obviously interesting.

Imagine taking a journey and being able to both use the mobile device for payment and as a ticket to travel throughout. This is not just in the context of transport itself (trains, buses, aeroplanes and so on) but other stages of the journey like paying for car parking, hotel accommodation or purchasing refreshments.

There are a number of challenges to this vision of the future. Many of them are physical and cost based such as the price of installing NFC enabled equipment into the transport network. However it will still require customers to want to use their mobile and that means addressing the concerns of security and user experience that have already been discussed.

What this brief look at a particular industry does however, is to highlight the new possibilities that mobile presents in the field of payments. For many organisations it may simply be that they want to take a traditional sales process and mobile enable it, such as purchasing an item of clothing from a retailer’s website. For others though it might present all new customer experiences and revenue opportunities.

Developers: be armed with the right approach

What we see in the m-commerce market is a history of solid growth and desire amongst consumers to buy via mobile. But we also see challenges ahead in the form of security concerns and the poor experience that many customers are currently receiving. Mobile wallets address these concerns and customers are prepared to try them as long as they are provided by organisations that they trust such as banks and credit card companies.

Development teams working on mobile projects, whether websites or apps, should begin looking into how they can integrate with mobile wallets. Coupled with the importance of having in place a good mobile wallet strategy, is the support of a robust testing strategy. This will mean looking for accessible tools and services that can address any performance challenges that might present themselves as a result of network traffic. The latter will be one for future blog discussions.

Crucially, the potential for m-commerce goes beyond the type of retail experiences that many of us are used to but it is one that opens up a future of new possibilities as well. So, while there may be trouble ahead for Mobile commerce in the future, there are strategies and tools in play today to enable you to buck the trend going forward.