Oct 28, 2014

Future is smartwatch - Why we all will buy smartwatch by 2015

2014 saw some astonishing smatphones. Smart phones which decide how we communicate and how we perform daily activities. They are here to make our life easier and smarter.
Some of the breakthrough smartphones of 2014 were -
Nexus 6 - Finest Google flagship phone
Amazon Fire phone with Firefly
HTC One M8
Xperia Z3
IPhone 6 plus
Samsung Note 4
Blackberry Passport

If you one of the above, you are a proud owner of a fine crafted device that not only make calls and not only smart but is one device for all your daily interactions and in best form. May be you bought smartphone last year then you should upgrade. And if you buy one this year, you might upgrade next year. Adding to the cost will come smartwatch. Believe it or not in 2015, you will be tempted, attracted, and possibly bound to buy a smartwatch.

We all wear watch, our hands are like naked without watch. Why not make maximum use of the watch. What if I dont want to carry large phone, only if everything possible by watch. Yes that's what most of us want.

September 4, 2013 in Berlin was the time when Samsung Galaxy Gear grabbed world's attention  but not for long. Also, it received negative feedbacks. It received mixed reactions on design and people complained about inconsistent notifications. Limited functionality and lack of apps was major drawback. Gear2 was big improvement over Gear with improved apps(health & music), batterylife and camera. Sony an other companies also launched watch.

Giant leap in smart watch technology is Apple's IWatch, and below was mentioned in Sep 11, 2014 article in TIME -
"The Apple Watch is just the start. How wearable tech will change your life—like it or not"
If you were unaware of possibilities of IWatch and I suggest watch the video -

Apple IWatch -

  • Health & fitness companion
  • Thumbnails of most connected people and send message or make call with iWatch
  • See & respond to messages
  • Calls & Notifications
  • Messages, Calls, Mails, notifications, everything tailored and designed for wrist
  • Digital touch and you dont type or speak
  • Sketch, Walkie Talkie, Tap, Heartbeat
  • Apps like Calender, Maps, Passbook, Music, iTunes, TV, Camera, Stopwatch, Timer, Alarm, World clock, Stock, Weather, Photos, Siri, Apple Pay - designed for watch. 
  • And a whole new world & possibilities for developers. 

Along with one of the most accurate watch.

You make call on watch put on hold and continue on phone. Crown is used for scrolling & zooming

One thing many people might not like about iWatch is its rectangular dial.
But rectangular dial can be beautiful and durable. Some of the designs on Apple site are really thoughfully designed -

Or may be you will like this luxury design, no doubt on luxury & price

You want to know more about it you visit Apple site or cnet -

People like circular dial and this is where android Moto 360 comes, a fine crafted design -

But latest addition from LG(http://www.lg.com/us/smart-watches) in smartwatch is too compelling to go and buy it right now -

And this one latest from HP -

(Source - http://online.wsj.com/articles/michael-bastian-creates-a-smartwatch-that-looks-like-a-watch-1414776232)
HP watch will work with both android & iPhone.

Comparison between watches is not scope of this post, but I believe some of the expert iWatch features are not present in current android watches in market like pressure-sensitive, love tap, zooming by digital crown, extra button for shortcuts, NFC payments, phone calling, and standalone music player. And all are reluctant to camera (except samsung earlier gear's), may be they are unable to figure out how camera fits with watch.

"Now smartwatch is not just a gadget; its fine crafted watch, source of your exclusiveness, stylish and most importantly Intelligent & acute"

Among above mentioned watches, iWatch seems to be most advanced, but samsung watch gear s, is one of the most advanced android smartwatch in which has full featured Wi-Fi & 3G, you can make calls, check messages, and use GPS even without phone nearby. It is most independent smart watch (independent of phone, still you need phone to install apps). One drawback is it runs on Tizen OS.

Still the biggest drawback for iWatch and others (except Samsung Gear S) is its dependency on phone. 

May be we need only watch. OR Tablet+watch, where we do most of the things(calling, music, notifications, camera)  using watch, and switch to tablet when we want bigger screen. 

Oct 25, 2014


Mobile wallet is present and future of prominent banking transactions like payments & transfers.
Telecom operators and Banking firms already started providing the mobile wallet with limited or slightly more capabilities. Barclays's Pingit, Vodafone M-paisa, Google wallet, and latest is Apple Pay. 
Apple is best in marketing, and thus Apple grabbed lot of attention and suddenly big retail giants announced acceptance of Apple pay - NFC payment. Its easy, secure, and cool. No question's on legitimacy and probably its more secure than you think. It ain't worrisome in any way. 
There's nothing wrong unless Walmart, K-mart, 7-eleven decide not to support Apple. These retailers joined hands in 2012 probably CurrentC coming next year(2015) will be competitor to Apple Pay.

Google Wallet, Apple Pay, or CurrentC - we don't know the most intelligent way to carry cards and more importantly we don't which will be most widely accepted. Possibly wait for few months or an year to see trend and decide.

Among all these technological innovations going on, I am also  impressed by Plastc, which is a single card which can hold information of 20 cards, and you swipe and choose which card will be actually swiped when you swipe plastc card. IN other words in one plastc card you feed information of multiple cards. You carry only one card - plastc card. You swipe plastc card, and before swipe you choose which card to use in the UI of plastc card. 
It's mentioned on their web site - 
"Plastc Card is the most intelligently designed, full-featured, and secure payment device on the market. In conjunction with the Plastc Wallet app, the Plastc Card can store credit, debit, gift, loyalty, membership, and even key cards on a single device. Each Plastc Card is equipped with a secure PIN lock, proximity alerts, and a unique ‘Return Me’ mode, making it more secure than both traditional credit cards and other payment technologies"

Know more on "https://www.plastc.com/", how cool it is, 

But I really dont know whether to recommend this card or not, because more changes coming and if all cards information is already in phone and we pay by phone then why even carry a single card. Choice is yours, but plastc is intelligent way to feed all cards in one device(/card). Best part it will be accepted everywhere. 


Oct 22, 2014

Future of Online Banking

With increasing number in mobile banking use (also in online banking), customers are looking for ease along with security.
And mobile wallet is probably future.

Essentially a digital container running on a mobile device, a mobile wallet is designed to aggregate and manage mobile commerce services, supporting payment cards, tickets, loyalty cards, receipts, vouchers and other items that might be found in a conventional wallet (or purse).

Wallet revolution failed so far, until Apple Pay. On 21st Oct, Bloomingdale, Foot locker, Toys R Us started accepting Apple Pay. Apple’s partnership with Visa, MasterCard, and American Express boosts the customer’s trust and legitimacy. Few months back Standard Chartered launched mobile wallet Philippines. M-pesa is available to Vodafone customers in many countries, and similar is Pingit by Barclays to UK customers.

Banks focusing on Online Banking and mobile banking should provide mobile wallet to their customers, because according to survey -

So, Every Bank should launch mobile wallet asap, if not done yet. 

Still many banks want to upgrade their online banking features and looking for what new can be done. 
I have found some features are very unique to some bank and which are rare but interesting and attractive. 
Online banking provides common features like balance check, fund transfer, direct debit, payment, etc. And recently many have added graphs for better visualizations. 

With tablets  taking over market, online application lives. A adaptive and responsive UI will work and attract more customers to login to online banking. But I believe we can build a powerful Online Banking application and over that we build small apps. Customer should have option to install optional mobile apps and also customer should be able to customize online banking application and make it simple.

But if still you are looking for more innovative ideas for online banking, or looking for what new can be done to attract more customers to online banking, or give overall online banking experience an amazing one to your customers, then below is my list of top ten features which can be added to online banking - 

10. Let user set background image
Description: cid:image001.png@01CFEDFF.8DE433A0
(Source - SalemFive Bank)

9. Intelligent Calculator, not like below but smart, along with other tools.
Description: cid:image002.png@01CFEDFF.F4FD5440

8. Allow to upload pictures of beneficiaries.

And display them accordingly in movement list.

7. Integrate CloudIt and other cloud features with banking app

6. Robust search -
Search for transactions using natural language (for example, "Starbucks purchases under $10")”
(Source: logixbanking.com)

5. Graphs for goals -

(Source - mint.com)

4. More categorization, like 102$ payment is 100$ payment and 2$ fee.

(Source: Mint.com)

3. A UI as simple as Simple.com
As we add more graphs and features, we have to keep it simple. And that is tough.

2. A tool, a message as attractive as below -

1.      Virtual Wallet integrated with Calendar

Oct 19, 2014

Still using EJB's: Is EJB dead - Not Yet

EJB - Server side components to hold business logic with lot server provided capabilities.

EJB evolution - 

EJB 1.0 was released in 1998. EJB 1 had basic component features like RMI, deployment descriptor, Security, transaction, along with bean types: Stateful session beans, Stateless session beans, and Entity beans. Session beans hold business logic. Stateless session bean is request scoped, where as Stateful session bean holds conversational state. Entity beans were not just POJO. Entity beans were coarse-grain object(bean) with functionality, data, and dependent objects. Creating Entity bean means fulfill following -
Create remote interface for bean, create home interface for bean, define primary key, implement remote interface methods, implement EntityBean interface and its methods, methods that match home interface methods, deployment descriptor. This was tough.

EJB 2.0 introduced local interfaces and message driven beans. CMP beans were extended with capability to define relationships (CMR). Multiple entity beans were allowed to have relationship.

EJB 2.1 added web service and timer service support. MDBs and EJB-QL were enhanced.

EJB 2.1 and earlier required deployment descriptor.
EJB 2.1 & earlier required two minimum interfaces - home & remote.

EJB 3.0(2006) was giant leap which excluded the need for deployment descriptor, home & remote interfaces, introduced annotations, EJB's are now POJO and expose POJI, Interceptors, and new persistence model JPA 1.0 to supersede Entity bean components.

EJB 3.1 further simplified EJBs and added new features; No-interface view, .war packaging, Singleton session beans, application initialization & shutdown events, timer enhancements, and @Asynchronous in session beans.
Subset EJB 3.1 lite excluded features - remote interfaces, RMI-IIOP interoperability, JAX-WS endpoint, persistent timers, and message driven beans.

The current EJB's have complete capabilities to write server side layer with business logic, transactional, secure, and persistence.

EBJ is used as a business layer in a 3 tier architecture. We can almost everything using EJB and design complete application/business layer using EJB's only.
All we need to know, how easy is to develop a EJB layer, that can process any request of presentation layer. Because EJB is just like any other java class with some annotations. But since it is an EJB, container does lot behind the scene, which we take for granted like -
Concurrent EJB access by multiple clients in thread safe manner.
Scalable layer with load balancing & clustering.
Provide JNDI for lookup
Dependency Injection
Transaction management
Message handling using MDB's
Scheduling using Timers
Interceptor service
Web service support

3-tier architecture -

Stateful session bean had bad reputation since its inception and was rarely used. Stateless session bean was the most commonly used EJB. Clients (like servlet) call the Session Bean (stateless) generally remotely and session bean interacts with entities (or entity beans of 2.1 or earlier). Session bean responds back to client. Session bean provided remote & local interfaces. In case a asynchronous call was required, a common approach is to use JMS, send message over queue, and use MDB (Message driven bean) to handle message and respond back asynchronously. So Session bean and MDB's act as facade which manage entities and hold business logic.

A call between Servlet and EJB (session bean) might be remote or local.
We can have several session beans implementing business logic. Each session bean encapsulating a business case, and interaction between session beans is always possible. A session bean can call other session beans and involve one or more entities, all these can be done in single transaction or in multiple transactions based on how we configure. Best part of using EJB's is how container manages transactions.
Transactions involving different resources like (Database, JMS destination, IBM MQ, etc.) can be merged into one so if rollback happens it is done on all resources.

I was working on a project of stock market - middle office in 2009 where we used EJB 3.0 + JPA.
We decided on using UI JSF as presentation, EJB for business layer and any ORM solution.
We went for Oracle, and used ADF for presentation layer and EJB and Toplink as ORM. The development was damn fast and complete middle office was developed in 6 months.
User actions on ADF (UI) are mapped to EJB (session bean) methods, Managed beans (ADF backing beans) are mapped to entities, and its done.
Drag and drop components from pallette, double click action buttons to map to EJB methods, map backing bean to entities, set cache settings in Toplink, and its done. Project is ready.
Possibly you can check below tutorial -
But JSF's are dead already, above design is old and most probably no longer will be used.

Downfall of EJB and Rise of Spring - 

Coming back to EJB's, why EJB's got bad reputation was because of two reasons -
1. Over complicated EJB 2.1 & previous versions
2. Highly advanced Spring framework in 2004.

Some nicely engineered features of Spring like APO, Inversion Of Control, MVC framework, and integration with Hibernate - changed the complete design of Java EE software's.
Declarative transactions can be applied to any POJO and can be deployed in Tomcat.
Spring+Hibernate ruled the Java EE software architecture from 2005 to 2010 and is still most popular framework.

Reinvention of EJB - 

EJB was reinvented with EJB 3.0, which included annotations, Dependency Injection, and POJO's.
EJB+JPA became alternative to Spring+Hibernate. But EJB was limited to few types of beans and annotations, compared to full fledged framework Spring. The power of Sping was in beans and its modules like Spring Webflow, Spring MVC, etc. In Spring it was easy to create layer's of beans, inject beans into one another, define scope of beans (session, request, singleton, prototype, etc.), integration with EL, etc. We can create a layer of Controllers beans, layer of Service beans, layer of Business objects, etc. And inject one layer beans into another using DI which means ability to choose at deployment time which implementation to use.

CDI - 
CDI (Context Dependency Injection) was introduced in Java EE 6 and below was mentioned on Oracle site for Java EE -
"Contexts and Dependency Injection (CDI) for the Java EE platform is one of several Java EE 6 features that help to knit together the web tier and the transactional tier of the Java EE platform. CDI is a set of services that, used together, make it easy for developers to use enterprise beans along with JavaServer Faces technology in web applications. Designed for use with stateful objects, CDI also has many broader uses, allowing developers a great deal of flexibility to integrate various kinds of components in a loosely coupled but typesafe way.
The most fundamental services provided by CDI are as follows:
Contexts: The ability to bind the lifecycle and interactions of stateful components to well-defined but extensible lifecycle contexts
Dependency injection: The ability to inject components into an application in a typesafe way, including the ability to choose at deployment time which implementation of a particular interface to inject
In addition, CDI provides the following services:

  • Integration with the Expression Language (EL), which allows any component to be used directly within a JavaServer Faces page or a JavaServer Pages page
  • The ability to decorate injected components
  • The ability to associate interceptors with components using typesafe interceptor bindings
  • An event-notification model
  • A web conversation scope in addition to the three standard scopes (request, session, and application) defined by the Java Servlet specification
  • A complete Service Provider Interface (SPI) that allows third-party frameworks to integrate cleanly in the Java EE 6 environment "
CDI's are so impressive that many feel that CDI is replacement of EJB. 

More about CDI can be read on Oracle websites, but for sure most of the things done using EJB or Spring are possible doing with CDI. But CDI should not be thought as replacement of EJB since because features like timers, asynchronous, declarative transactions, monitoring, and pooling are only available to EJBs. In future CDI might include all aspects currently available in EJB 3.1, but for now a Java EE design will have EJB as a layer with CDI's injected. 

One more major reason of still using EJB's is that  -
"Although an EntityManager injection works also for CDI maanged beans, the beans cannot be directly exposed to the UI layer. 
The EntityManager in a stateless environment can be configured only with the 
@PersistenceContext(type=PersistenceContextType.TRANSACTION) annotation, which is also the default value. Every interaction with the EntityManager requires, therefore, an active transaction; otherwise a javax.persistence.TransactionRequiredException is thrown. Transactions cannot be started in CDI managed beans - out of the box. An EJB solves the problem elegantly, because neither manual transaction management nor realization of CDI extensions is required to start a transaction. A single, no-interface view bean, such as a facade, manages the transactions without any further configuration, frameworks, or manual coding" - Stateless Session bean.
Above is the extract from "Real World Java EE Patterns" book by Adam Bien
And thus our current Java EE design (suitable for all Java EE softwares) will be -
EJB 3.1 + CDI + JPA

A continued discussion is in below blog post -

© Shift, ShEkUP, Shape, and Surprise | All rights reserved.
Blogger Template Crafted by pipdig