Application Architecture & Systems Development
Too many choices
Application development offering is like a cereal isle of the application suite, tools etc. starting from three tier, web service,soa, AA, AD and its so on components or compartmentalized version. One needs to identify the labeling, ingredients or what is the attraction point. Will this get qualified by where it is placed in the aisle comparing against eye level, knee level similarly to vendor placement in the market by support, market cap and enhancement and maturity? Well, the question mark is on everything how and what the demand and requirement define.
Is it the advertisement that’s making our decision or forcing us to pick the most lucrative and touching to our hearts where we need the most. In the application portfolio chain, where the does the decision making process reside. It is the developer for who we need to make life easier, faster and better or is it the business who need minimal viable products and enhancement at a speed of light or end user who is thought well in mind what and how he will react to it.
Services, product, market, in-house teams, and legacy are all what needs to be in mind and which market segment to cater to where the application will be deployed and used at his capacity. The interesting concept from Netflix is to provide recommendations to the user while the application returns the error to curtail the error called as eventual consistency. Which not only provides me with an excellent example of a classic salesman who keeps the customer engaged even though he does not get what he came for or looking for. It is only achievable through the benefits of keeping all these aspects in mind which are qualified as Purpose.
Services driven use cases which necessitate breaking up the components by knowing the purpose, user, the rate of change and usability is what helps in decision-making matrix and design. The paradigm varies between the importance of inputs vs output changes drastically by the industry and business type and so the application and user. In the whole process of requirement gathering and understanding what needs to be done becomes the most critical piece to solve. Is it the user driving the business to define those, or the business dictating it to the application or the enterprise architect trying to articulate and understand and relay back and get the design done. All key pieces are as critical as the analogy of food producer, from seeds to harvesting and to bringing its market to be accepted and keep it fresh is what makes the differences and how in turns that can be fulfilled back or better with the same content or type and staying consistent.
Use case driven
Business is looking to transform, and service integrators play a potential role in helping and striving them up to where it needs to be headed. It is all use case and industry driven where the transformation needs to take place. Right fitment is very important similarly to gathering the right details.
Table 1. Industry-specific use cases and requirements
|Telco||1||Innovative business models||Create data-driven API models for improved customer care.|
|2||Operational efficiency||Offer world-class customer care by tracking in-depth subscriber activity, anticipating and monitoring issues and reducing call center wait times.|
|3||Real time analytics and decision making||Control and reduce network congestion by profiling subscribers and dynamically allocating capacity.|
|Retail||4||Personalized recommendations||Create data-driven API models for improved customer care.|
|5||Dynamic pricing||Provide differentiated dynamic pricing based on seasonal, fashion, and other trends.|
|6||In-store experience||Use geo fencing based on near field communication (NFC) and provide guided selling experience in store.|
|Banking||7||Fraud detection||Enable real-time fraud detection, alerting, and remediation based on the transaction and behavioral data that is collected and analyzed for billions of transactions.|
|8||Sales and marketing campaigns||Use comprehensive customer insights to provide targeted campaigns integrating them with curated offers and schemes.|
|9||Threat detection and compliance||Use big data analytics with active and passive probes to test system weaknesses and attacks, collect data for auditing, and provide a line-of-business dashboard of the overall exposure.|
|Healthcare and life sciences||10||Summary of genomics||Develop highly confident characterization of whole human genomes as reference materials to offer targeted care.|
|Government||11||Census Bureau Statistical Survey response improvement||Increase quality and reduce the cost of field surveys, even though survey responses are declining.|
What is Web Service?
Web Service is a way to expose the functionality of an application to other application, without a user interface. It is a service which exposes an API over HTTP.
Web Services allow applications developed in different technologies to communicate with each other through a common format like XML, Jason, etc. Web services are not tied to any one operating system or programming language. For example, an application developed in Java can communicate with the one developed in C#, Android, etc., and vice versa.
Web Service is a connection technology, a way to connect services together into a Service Oriented Architecture (SOA).
What is Micro Service?
Micro Service is independently deployable service modeled around a business domain. It is a method of breaking large software applications into loosely coupled modules, in which each service runs a unique process and communicates through APIs. It can be developed using messaging or event-driven APIs, or using non-HTTP backed RPC mechanisms.
Micro Services are designed to cope with failure and breakdowns of large applications. Since multiple unique services are communicating together, it may happen that a particular service fails, but the overall larger applications remain unaffected by the failure of a single module.
Let us understand these concepts with the help of an example of Online Shopping Center.
In figure-1: The Online Shopping Center Web Application is developed in Monolithic Architecture. In this application, there is one Web Service which communicates with web application and database. So this web service might be performing many functional tasks related to database operations.
In figure-2: The Online Shopping Center Web Application is developed in Micro Services Architecture. All the components of the web application are developed independently, single functional responsible, fine-grained clearly scoped services.
Web Services could be of any size, including large enterprise apps retrofitted with APIs that too many other apps depended on. Although “micro” in Micro Services, the basic concept is that each service performs a single function.
For example, one of the largest eCommerce portal, Amazon, has migrated to Micro Services. They get countless calls from a variety of applications, including applications that manage the Web Services API as well as the portal, which would have been simply impossible to handle for their old, two-tiered architecture.
Applications built as Micro Services can be broken into multiple component services and this service can be a Web Service, which should run a unique process and then redeployed independently without compromising the integrity of an application.
Cloud has become mainstream now and has given birth to all kinds of services, now the question is all about how do I cloudify or sasify my apps and develop and make it as cloud native. Below three categories very well explains how best it differentiates from each other and inside each of them is like a cereal aisle as explained earlier which depends on what really you looking for and how would you like to embrace it which could strategic or tactical in nature.