CIO Interview Series: Deepak Hoshing, Head Architecture, Finacle, Infosys Technologies
Shayonee 270003VCY5 Comment (1) Visits (6050)
Q. Thank you for granting us this interview. Please introduce yourself and let us know a little about your background and the work you are currently involved in.
A. I have been working for more than two decades on variety of technologies after passing out from IIT. For past 14+ years, I have been with Infosys and currently I head Finacle Architecture. As you would be aware, Finacle is a flagship product from Infosys in the area of banking. It has presence in 65+ countries and 130+ banks and about 244M customers all over the world hold their accounts in a Finacle system. Finacle has been rated consistently high by analysts for both its vision and execution capability. My team is responsible for the overall architecture of the product. To name a few architectural components, we have database interface libraries, components to integrate with external enterprise systems, support for Finacle's scripting framework, libraries for communication across tiers, components for authentication and identity management, application monitoring, batch framework, interfaces to BPM tools and document management software, and so on. We have developed an extensibility tool kit which comprises of state of the art tools for changing of user interfaces, writing reports, customization code and so on. Currently we are involved in many interesting activities which should make Finacle more attractive to both large as well as small banks. One of these initiatives involves porting Finacle onto mainframes.
Q. Finacle is the flagship Banking product from Infosys. What has been Finacle's experience with Java-TM?
A. Finacle has been using Java since about a decade and we use Java quite extensively. Solutions like Finacle Internet banking, mobile banking and CRM have been developed entirely on Java technologies. Core banking also uses Java extensively with presentation and navigation layers leveraging technologies like JSPs and servlets. We have a rich integration layer written in Java and support standards like Webservices, XML over JMS and enterprise java beans. A host of surround systems like signature verification and Finacle SSO module are also in Java. Java thus forms a critical constituent in our application development.
Q. What has impressed you in monitoring developments in Java technology?
A. What is most impressive is the size of community working in Java. As per a survey conducted by Evans Data Corporation in 2009, there were about 9M Java developers in the world and I am sure that number would have risen further now. Tools for Java development, monitoring, and troubleshooting have all matured and libraries to perform most tasks are available whether it is transaction frameworks, cryptography or messaging and so on. There is a large and vibrant open source community enriching Java every day. Java is now omni present right from mobile phones held in one’s hand all the way to top end mainframes. Large scale standardization is taking place with Java community process resulting in formation of JSRs for just about everything, whether it is JDBC, JSPs, servlets or JMX or rules engines. Real time Java could be another development that we would track. With the world becoming smaller and smaller and access to information becoming easier, it appears that most of our problems are being solved by the universe.
Q. What are some of the main challenges that you face in deployment / migration of your solutions?
A. Finacle has grown over the period. With customers all over the world, functional depth in each area has increased whether it is retail banking or internet banking or trade finance. Over the years even the breadth has substantially increased, multiple modules have got added to functionality, be it wealth management or enterprise level CIF or Islamic banking. Customers are becoming more demanding and of course there is an expectation that information is available right from where they are using tiniest of the mobile devices. With functionality being added at breakneck speed, keeping quality intact is never easy. Existing landscape of applications within large enterprises is not becoming simpler either. So deployment of product is becoming more complex and expectation that we will stay in a complex jungle with existing packages, home grown applications and infrastructure like process server or rule engine or scheduler is very much there. To add to complexity further, it is a different jungle in each enterprise. For a bank, deployment of a new core banking solution or migration from existing system is definitely a major operation and requires careful planning and execution.
In terms of migration from one version of Finacle to another, we are generally better off since we do ensure customization is done within overall framework of our extensibility tool kit. However, if customizations done are very extensive or if there is a platform shift carried out with a major release, this job becomes more complex.
Q. Could you please discuss some of the common performance bottlenecks that you look for in your deployments?
A. We learnt a lot over past several years based on our experience with Websphere. We encountered one situation where there was severe contention on session database with huge number of servers being deployed. We did face a few bottlenecks like synchronized blocks which were typical to Java code. We have seen excessive logging to standard output or standard error causing performance issues. All said and done, much larger share of our bottlenecks were related to environment outside Websphere with which our code was interacting. There was one case where Java application was not handling a message sent by another application which was completely mutilated. There was another case where after data migration, some of the data conditions were not being handled.
While we benchmark extensively and have a dedicated performance testing lab, not every use case and not every condition can be performance tested. So we regularly check badly performing queries or HTTP requests and tune them.
Q. What are some of the key changes you would like to see in Java?
Java definitely has come of age like I said but then it is quite human to keep asking for more. It would be nice to have some control to kill some of the "badly" behaving threads whether it is consumption of excessive memory or CPUs so as to protect rest of the system from coming down, something on the lines of “self-healing”. Segmentation faults in native libraries can result in entire container coming down, so it might be great if a separate environment is kept for loading the native libraries. It would also help if garbage collection policy could be specified uniformly across different J2EE servers. Similarly it would help if synchronization issues could be detected and corrective action is taken. Compression of heap dump and may be Websphere itself as a heap dump analyzer could be interesting.
Q. Any advice for our readers and young developers who aspire to pursue their career in Java?
A. You are definitely on the correct path and with Java being available on everything right from mainframes to tiny handheld devices; you indeed have a bright future. With such a large community working on Java, many of the common software coding problems could be already solved within standard implementations or packages, so there is no need to reinvent the wheel. Use the latest tools whether these are for development or for monitoring. As Abraham Lincoln has said, “Give me six hours to chop down a tree and I will spend the first four sharpening the axe".
Please note - Java is the registered trademark of Oracle Inc