Application Services provides a platform for IT Development and Maintenance professionals to discuss and gain insights into best practices, process innovations and emerging technologies that will shape the future of this profession.

March 23, 2017

Computer Vision - The Next Frontier of Innovation

 

Imagine walking to an ATM kiosk pressing a button and getting your cash (Forget Cashless world for a moment), no cards, no pins, nothing it's just "YOU" that matter without the need of any surrogate that you must carry. Yes, sounds futuristic, but I believe we are at its doorstep. This and many more magic are possible with the advancement computing leveraging computer vision and breaking the barrier of traditional computer input mechanism that have been serving as their senses to react to its users needs till date.

Computing has evolved from its Stone Age era of reliance on punch cards for its input, to keyboards, mouse, touch and to recent innovations of voice enabled inputs such as Siri and Cortana. Computers are fundamentally designed to understand binaries, various input mechanism that's are being used are approaches that's more convenient for we humans and at the same time has the feasibility to be translated to binaries. For major part of computing history, text based input served as the best deal, with this approach there is always an explicit step to translate the Subject, its desire, its credential and privileges to alphanumeric representation that computers can work on, hence you have this cards or usernames that identifies the subject and pins or passwords that Authenticates the subject.  The input mechanism is just a means to translate the user's desire to the binary format that computers can understand. With Computer Vision this whole model changes the actual subjects are translated to binaries that machines can understand and act upon. Chui a doorbell with facial recognition capabilities is one such application of this smart technology that is changing how we interact with machines and realize its value. The engagement with machines are becoming more direct and implicit.

Computer Vision is convergence of Image Processing, Artificial Intelligence (Machine learning to be specific) and Big data which enable machines to perceive things just like how we humans do, in turn making machine one step closer to replicate human senses to process its surroundings. Technology today is quite matured in applying Computer Vision to specific domain like facial recognition or reading vehicle license plate, but it's challenging to apply it more generically in fields like self-driving car where there are too many variations that needs to be processed to present the optimal outcomes, additionally the field of self-driving cars has too many legal, compliance and ethical issues beyond technology that's needs to be addressed before they become mainstream consumer technologies. Until then its prime time for Computer Vision to change how we interact and extend the boundaries of computers.

In an era of smartphone where every phone is equipped with camera, its coincidentally ready for the game of computer vision. Computer Vision in collaboration with Augmented reality has immense potential, where computing can enrich our physical world with immense data that's available for us, but instead of we explicating searching this information, computer vision would help us overlay this important information that matter us the most in real-time, taking the whole experience to a new level, one where we are presented with valuable information rather than requesting it. This would be a typical example of technology enriching our senses as we develop senses for our technology. There are many apps that allows you to focus your camera on your surrounding and get your valuable information based on geolocation and subject in focus. Hyundai's Augmented Reality owner manual is another excellent example of this technology being applied innovatively.

With the capability, there and maturing, there is immense possibilities that's conceivable with Computer Vision. Financial Investors are using satellite imaginary to get real time inputs to economic metrics like traffic at ports, oil reserves and crop yields. The same method can be used in health care to check trends in flu and other seasonal diseases by analyzing parked cars at Hospital and Urgent Care centers. With eyes in sky, property and casualty insurers can have a better insight to their potential liabilities in certain areas by observing traffic and accidents in areas they cover. These are just the patterns that can be extended to different business areas to gain massively from Computer Vision. With today's world, all about images shot at megapixel there are trove of information waiting to be harvested, and time is ripe for innovative use cases that could be leveraged using Computer Vision.

All technologies comes with its own concerns, with Computer Vision where any visual is more than an image, there are huge concerns of privacy as simple camera has the capability of going behind its realm to provide and extract information that otherwise would only be possible through human intervention. All said its a beginning of a new Technological journey that has the potential to make our childhood days science fiction into reality. Computer Vision is well positioned to lead the revolution until we dawn into next penultimate era of computer telepathy where our thoughts are translated to binary to serve as computer commands J.

 

March 1, 2017

A Journey on the line of Architecture Assessment

Author: Gayathri Rajamanickam, Technology Architect, Infosys 

"Architecture starts when you carefully put two bricks together. There it begins." - Ludwig Mies van der Rohe

According to the research firm Gartner Group, enterprises generally plan to upgrade 38% of their application portfolios, 24% of them will be replaced, 18% will be retired and 22% remain unchanged. Application portfolio upgrade or replacement can be targeted towards the need for the technology modernization, optimization of LOBs (Line of Business), improving sustainability of the system, etc.

Application architecture assessment plays a vital role in both, green field application development or re-engineering (upgrade) of existing application. Architecture of a system need to be evaluated to rationalize the decisions behind the system design, to review the solution that meets both functional and non-functional requirements and also to ensure quality of the system.

Recently I was engaged in architecture assessment for one of the leading insurance brokers in USA that specializes in developing, marketing & administering customized insurance programs and specialty market solutions. The customer is utilizing a Policy Management System (PMS) which is evolving as a global product over the time that triggered the need for architecture assessment.

In this blog, I am going to share my experience on how the architecture assessment is conducted and processes involved in the assessment.

Architecture Assessment

Architecture assessment is an activity to validate the decisions taken in the existing architecture of the system. It is generally conducted in enterprises where complex software systems are connected to each other to perform their day-to-day business operations.



Plan & Gather

The Assessment starts with discovery phase where brainstorming sessions are conducted with the key stakeholders to explore and understand the existing system architecture, non-functional requirements, current business and technical challenges in the system. The existing knowledge artifacts are used to help in supporting some of decisions taken all through the chronicled changes to the system.

The knowledge captured during the brain storming sessions are also documented in the form of graphs and tabular structure to provide better clarity to the system in place.

  • A historic graph is plotted utilizing insights about the past releases and future releases with the essentials on technology and business parameters that drive the progressions to the system
  • Existing system architecture model is revamped to incorporate the critical business themes along with the appropriate mapping to the technology stack

Assess

Technology assessment mainly includes the activities like analyzing and reviewing the various layers and association to each other in the system. Estimation of each layer - in terms of number of services, number of forms/pages, number of business rules, number of tables and so forth., are computed and assessed in the perspectives of minimizing redundancy across different architecture tiers, separation of concerns, single responsibility principle, coupling and coherency across the layers. Technology stack used in each layer are reviewed and quick POCs are performed with the best alternatives available in the market. Static code analysis and detailed code reviews are performed manually as well as using tools and frameworks wherever possible to evaluate the design patterns that are used to meet the business needs of the system.

The best outcome of any technology improvement goes hand in hand with the underlying infrastructure in the complex enterprise applications. There comes a need of infrastructure assessment as well. Here the assessment is performed to appraise the system for its readiness towards cloud, load balancing, and optimization of application environment for different LOBs, inspection of underlying hardware of the systems to understand the performance factors behind the scenes. Size of existing data are measured and data growth rate is predicted based on the current data size to estimate the performance of the system for the future need of the business.

Each module that constitutes the part of the complex enterprise application is mapped to individual functional component. This activity is performed to isolate the redundant implementation of the similar business requirement across the enterprise.

Fitment-gap analysis is performed to evaluate current strategies and processes followed on the deployment model with latest process model like DevOps in order to provide the reliable and incremental process to improve the software delivery process.

Recommend

Following are the typical outcomes of the assessment

  • Assessment Report
  • PoA Architecture
  • RoadMap

Assessment Report

This report will include summarization and detailing out section for key observations and opportunities section. Every key observation will have a mapping on the business impact such as time-to-market, cost of maintenance, etc.

Below picture depicts sample summary section of the assessment report.

 

PoA Architecture

Point of Arrival (PoA) architecture will define the proposed architecture model based on finalized assessment. PoA will address the existing challenges that are present in the enterprise application along with the proposal to make the system better fit for the future needs of the business. The proposal can include technology upgrade, modernization of legacy system, modularization of the existing system, re-engineering of certain critical components, etc.

RoadMap

Recommended RoadMap is presented to the enterprise to leverage the best possible outcome of the assessment. As part of this roadmap, recommendations are categorized on the basis of short term, medium term and long term business benefit to prioritize the opportunities for implementation.

Conclusion

In this blog, we have seen methodologies and procedures involved in the life cycle of an architecture assessment. An assessment is not a strategy to solve a single problem. It is an approach towards the betterment of the system. I'm sure, a well-run assessment will definitely help the client in improving their business and accelerating their growth in the competitive market.

References

https://www.gartner.com/

https://en.wikipedia.org/wiki/Enterprise_Architecture_Assessment_Framework

http://searchmicroservices.techtarget.com/feature/Mobile-computing-backlash-App-modernization-needs-on-the-rise

Continue reading "A Journey on the line of Architecture Assessment" »

November 15, 2016

Things are Getting Chattier - Chatbots

 

In today's world messaging is ubiquitous and defaults to our preferred way of communication. From Pigeons to Chatbots, this service has undergone a phenomenal change in terms of it usage and capability. Modern era messaging was initially pioneered by telecom industries in the form of paging service and then later as SMS which now is fondly called as texting. With the advent of technology messaging service has broken the boundary, the service which was once a bread and butter of telecom industry is now provided by various digital platforms.

Modern digital messaging platforms have extended the traditional vanilla messaging service to being more feature based and affordable. Gone are the days when you just messaged plain text in abbreviated form, today message can contain any forms of media. With ever growing user base being engaged in this medium messaging as a platform was bound to leap to the next level of innovation - Chatbots. Chatbots or Conversation Interfaces are computer programs that are capable to respond to human conversation. Chatbots are the outcome of convergence between Messaging platforms and AI (Artificial Intelligence), the advancement of both of these fields has made this happen. If you consider initial SMS era as Messaging 1.0, the advent of digital messaging platform could be considered as Messaging 2.0 and current rising era of Messaging bots augmenting a well-established platform could be considered as Messaging 3.0.     

Chatbots are obvious evolution for our quest for Artificial Intelligence and simplified User Experience. Instead of developing an application that needs to be navigated specific way for getting the desired response, Chatbots gives us a more natural approach of getting the desired results or response by using natural conversation that we are so much used to. Unlike conventional interface, Chatbots makes systems more intuitive and flattens the learning curve. One of the beauty of this application user experience is the natural documentation that any Chat trails or Chat History would provide for other users for their efficient usage.

The concept of a bot responding to your message is not totally new. The well-established text banking which allowed you to text specific commands for particular actions on your accounts are the predecessors to today's Chatbots. Appeal for Chatbots comes from the fact its morphs to our basic and convenient method of interaction - Messaging. Imagine what mobile apps have done to website today by porting their functionality to native apps, Chatbots today have a similar potential of porting apps functionality to messaging platform. With mobile being core to our life today and messaging being our primary interaction, Chatbots is evolving to be as Messaging or Conversation first approach for our Application Systems..

Facebook and Skype are going big time in exploring and dominating this space, today they are providing platforms that business can use to onboard their solutions to conversation platform. Skype already have many bots that help you from finding cheap airline tickets to getting weather updates by mere conversation. Facebook with its extensive reach is well positioned to give enterprise the required platform that could keep their users engaged and translate it to business opportunities. There are also solutions where some businesses have leveraged this avenue in a unique way, ICICI bank has introduced 'iMobile SmartKeys' which is a keyboard that you can use in your chats to transfer fund without having to move away from your messaging app. Similarly Google's GBoard is a custom keyboard that has search integrated to it and ensures that users does not have to move away from his messaging experience to get search results into their conversation.

Though revolutionary, Chatbots have their own challenges and strengths. With Chatbots the interface becomes simpler but the design gets complicated. Efficient Chatbots have to be fronted by robust Natural Language Processing (NLP) engines to handle wide variations of human conversation and channel them to respond efficiently. Everything need not be built from scratch, the ecosystem to build these solutions are growing and becoming more efficient. Facebook, Skype and other prominent messaging platform are providing the required platform to develop bots. IBM Watson, Google and others are providing robust NLP capabilities. New frameworks are springing up making developers task easier. So things are getting geared up for systems to get chattier.

Like any other application model, certain use cases are better served through Chatbots when compared to others to start with, for example Chatbots are well suited to get answers to questions "How far is New Delhi from Bangalore" rather than "Show me the nearest route to New Delhi", the later use case would rather be well triggered through conversation rather than being served through it.

This trend is just the beginning of new avenue of opportunities that is ripe for business to harvest to extend their reach and enable further their business. In today's new world of emerging AI, it's time for conventional systems to start conversing to humans and leave browsers behind.

October 13, 2016

The art of choosing the right product for business transformation

Author: Ravi Narayan Vishnubhotla, Senior Technology Architect

As part of the future-state architecture of IT transformation, certain business requirements need specialized IT applications. These could mandate newer technology systems or migrating from legacy technology platforms. As part of buy versus build evaluation, products that can address such requirements need to be identified.

Continue reading "The art of choosing the right product for business transformation" »

October 4, 2016

Indoor Localization

Author: Varun Singla, Technical Test Lead

Location these days carry a lot of importance in indoors as well as outdoors. Outdoor localization, these days is, widely used in many applications with the help of versatile sensors and technologies like GPS, accelerometer, gyroscope etc.

Continue reading "Indoor Localization" »

September 16, 2016

Future of enterprise web applications: Pervasive next-generation JavaScript

Author: Arshad Sarfarz Ariff, Technology Architect

No one would have ever thought that a 10-day project, created at Netscape by Brendan Eich in 1995, would turn out to be the frontrunner for building enterprise web applications after 20 years. Today, JavaScript leads the race for building isomorphic web apps. An isomorphic application is one whose code can run both on the server and on the client. This was primarily made possible by Node.js - an open source, cross-platform JavaScript runtime environment built on Chrome's V8 JavaScript engine, which opened the doors of JavaScript to server-side coding. 

Continue reading "Future of enterprise web applications: Pervasive next-generation JavaScript" »

September 14, 2016

Minimizing risks implies investments in automation for next-gen underwriters

Author: Naveen Sankaran, Senior Technology Architect 

One of the main objectives of software is to automate work that would otherwise be done manually. This has multiple benefits including cost reduction over the long term, increase in productivity and profits, and the ability to channel human effort towards more important work.

Continue reading "Minimizing risks implies investments in automation for next-gen underwriters" »

July 18, 2016

My experience with Bare metal provisioning: OpenStack Ironic

Cloud! The name itself says a lot. No need to explain. But just think about what were there before cloud. Guess!! Yes, it is virtualization. Entire community was amazed with the capabilities and the feature virtualization technology provides. The ease of maintaining infrastructure and reducing burden on the cost was truly awesome. No doubt about it.

However, when technology evolves further and started new edge on the research and technology, cloud came up. And surprisingly, it started roaming all over the IT sky in a very short time span, it grew like anything. Now everyone talks about the cloud, what why, how and so on. Most of the organizations and products are now moving to clouds and using its benefit.

So, what next! Yes, when we talk about cloud, many people raises their eyes and ask, what about computing performance and for that I have answer, bare metal provisioning in openstack, aka Ironic!!!

Ironic: the openstack bare metal hardware provisioning service

Today, I will shed lights on the setup and challenges faced while implementing the same across projects.

As you might be already aware, the main purpose of Ironic service is to provision the hardware based on the configuration and let the guest operating system be installed on that remotely to have the E2E infrastructure provisioning done.

Components:

·         Ironic has three major components

o   Ironic API

§  Talks to Nova compute service

o   Ironic conductor

§  Talks to other openstack services  

o   Ironic DB

§  Talks to the different drivers.

Configuration:

·         Make sure that authentication system is in place before executing any openstack command.

·         You need to download the rc file from horizon dashboard and source it.

·         Actual command  : source server-openrc

·         This file contains all the variables required to locate each service and url. It asks for the password once you enter the command. you need to enter the admin password if you are using rc file of admin user

·         Every user has its own RC file which contains information related to its tenant, projects and credentials etc.

·         You need to create the endpoint for service. The service type is baremetal and service name is Ironic

·         Ironic API and Ironic conductor service can be on different machines. Ironic conductor can be installed on many machines but there version should be same to have exact function properly.  

Database:

·         Mysql DB gets used to store all data. mariaDB prompt comes for all the mysql commands.

·         Ironic database and ironic user has to be created.

RabbitMQ configuration:

·         In the first attempt, we see that rabbitMQ portal was not working. To fix that, we have to install management plugin and then it started working.

·         Get the RabbitMQ username and password from nova configuration file.

Key challenges:

·         While creating ironic database, faced the issue with sql connection. The issue was, while creating database, service was not able to access the mysql connection. The reason being, in the /etc/ironic/ironic.conf file, in the connection section the IP of controller where identity service is running was provided. Instead, it should contain that entry which is there in /etc/mysql/my.cnf

Drivers:

·         Ironic supports plenty of driver to provision the hardware and install the OS. There are various 3rdparty providers who have their own proprietor software's and drivers to work with Ironic.

o   The popular one is IPMI

o   Installed the IPMI utility.

o   Configured the service as it is and restarted the service.

·         It seems that IPMI-tool need IPMI controller hardware to be present on the machine which is being provisioned.

Configuring Compute service:

·         Nova.conf file needs to be modified to add the parameters required for Ironic to work.

·         Sometimes nova.conf file present on the both the boxes. Compute node and controller node. This is bit confusing. The file which is present on the node on which nova-scheduler service is running is the main file and is responsible for all the changes related to Ironic.

·         Once all the configuration are in place, restart nova-scheduler on controller node and nova-compute on compute node.

Enrollment process:

·         While enrolling any node, we need to provide the ironic api version. set the environment variable : export IRONIC_API_VERSION=1.11

·         Need to register the MAC address with ironic service. If there are multiple NICs , get the MAC address of that NIC which is connected to LAN

·         Node should be in available state so that compute service can see it to provision the hardware. If the node is in any another state then compute service won't see it and cannot be provisioned.

·         Node cannot be moved directly from enroll state to available state. First they should move to manageable state and then to available state.

To summarize, bare metal provisioning is really cool stuff when you design the private cloud and planning to deploy an application which requires high end computing and are very sensitive to computing performance. "pxe_wol" is the easiest driver to learn how Ironic service works and get acquainted enough to understand capabilities of Ironic. As I mentioned earlier, there are plenty of drivers, however, they need special hardware support and configuration to get it working. Try with "pxe_wol" first and move forward.

Typical Openstack Ironic conceptual design you can refer here:

http://docs.openstack.org/developer/ironic/deploy/user-guide.html

References:

https://wiki.openstack.org/wiki/Ironic

https://developer.rackspace.com/blog/how-we-run-ironic-and-you-can-too/

https://software.intel.com/en-us/articles/physical-server-provisioning-with-openstack

April 4, 2016

IT Transformation is Business Transformation! Why? How?

Author: Ravi Vishnubhotla, Senior Technical Architect (Insurance - FSI)


Today, IT transformation (IT Strategy/Application Portfolio Rationalization) has become synonymous with business transformation. In this post discusses why has this happened and how can it be achieved.

Why is IT Transformation same as Business Transformation today?
As part of IT Transformation, businesses and clients go through IT strategy for 3-5 years to replace their existing legacy technology with newer or better technology. IT Transformation is assessed in terms of People, Process and Technology. The sponsorship is mostly within IT department and implementation of the strategy is completely IT driven. However, in today's era where growth is measured in terms of revenue / profit / customer service and SLA's, IT becomes an enabler for business to achieve these goals. So when business vision, mission and goals are considered, IT transformation automatically becomes the same as business transformation. Business users play an active role during this process and  act as a key driver for the successful completion.

How can Business Transformation be achieved?
Business Transformation can be achieved by using the following methodology. This methodology is one of approaches based on my experience which can applied to small or medium sized businesses and can vary depending on businesses or industry. The key principle is to define steps using People, Process and Technology perspective.


Ravi Vishnubotla_1.jpg


  • Business Vision
    - Obtain business stakeholders vision of the future of their business; Where do they expect the business to be few years from now (generally 3-5 years depending on the size of business or industry)
    - Understand overall organization and the business
    - Understand the core services and business processes
    - Key concerns / challenges being faced in the business
    - Define key driving factors of the business
    - Create a Vision Document and core stakeholder group to oversee the transformation process
  • Current State Assessment (CSA)
    -Understand the AS-IS business process and business applications
    -Conduct discussion sessions with business stakeholders
    -Document all issues, manual processes, areas of pain points
  • Future State (CSA)
    -Define the 'To-Be State' for IT Systems, Infrastructure and business processes
    -Apply solution(s) to business vision, manual processes and pain points
    -Consider modern business, IT trends, Industry Standards and guidelines
  • GAP Analysis
    -Defines what it will take to go from current state to defined future state
    -Should consider new business processes, new IT applications
    -Apply disruptive IT solutions e.g. Mobility, Automation
  • Define IT Solution Architecture
    -Define solutions for various gaps identified and new processes/applications considered
    -Perform initial Product Evaluation for solutions if needed. Consider Buy vs Build
    -Identify Logical (functional view) and Physical (system view) IT solution and model
  • Develop CBA and Roadmap
    -Estimate the timelines and effort for the various solution defined
    -Perform cost analysis by considering price of infrastructure, IT systems (product / in house development), hiring new people, and introducing new processes
    -Break down solutions into various projects and assign stakeholders either from IT or Business
    -Propose a Road map to rollout the solutions.
  • Review and finalize strategy
    -Review the proposed transformation process as draft via a presentation or a document
    -Conduct sessions with various business unit stake holders and IT stakeholders
    -Agree on the proposed solution and roadmap
    -Refine and resolve any open issues or questions
    -Baseline Strategy for CTO and CEO approval

To summarize, this is how the business transformation process will look:


Ravi Vishnubotla_2.jpg

The steps defined here are based on my experience, working with various customers and clients. The process or approach can vary and will be different depending on the business and industry. This is not a one size fits all methodology but should give you fair idea as to what it takes to achieve business transformation from an IT perspective.

Continue reading "IT Transformation is Business Transformation! Why? How?" »

September 28, 2015

Macro to Microservice Architecture - Shrink or Sink? Part-2

Author: Archana Kamat, Product Technical Architect

In my previous blog, "Macro to Microservice Architecture - Shrink or Sink? Part 1", we explored the basic characteristics of MSA and how it differs from Service-oriented Architecture (SOA). While MSA enables higher service independency, it cannot be applied to all business scenarios. 

Continue reading "Macro to Microservice Architecture - Shrink or Sink? Part-2" »