Matrix Clustering based Migration of System Application to Microservices Architecture

A microservice architecture (MSA) style is an emerging approach which is gaining strength with the passage of time. Micro services are recommended by a number of researchers to overcome the limitations and issues encountered by usage of aging method of monolithic architecture styles. Previously the monolithic applications cannot be decomposed into smaller and different services. Monolithic styles application was the one build application. The issue resolution has the focus on lightweight independent application services in the form of sizable services, self-contained units with primary focus on maintenance, performance, scalability, and online services eliminating dependency. All quality factors have been thoroughly discussed in literature, system application migration is becoming an emerging issue with different challenges. This study is addressing the tight coupling to reducing this issue. Moreover, this literature review indicates some complex problems about the migration or conversion of system application into microservice. In architecture, dependency is a big challenge and issue in recent technology. Microservices are recommended by a number of researchers to overcome the limitations issue about how to migrate the existing system application to microservice. The need for a systematic mapping is essential in order to recap the improvement and identify the gaps and requirements for future studies. This study shows open issues first, new findings of quality attributes of microservices and then this study helps to understand the difference between previous traditional systems and microservices based systems. This research study creates awareness about system migration to microservices. Keywords—Monolithic architecture; microservices architecture; systematic mapping; system migration; application transformation; traditional application development; emerging challenges; API


A. Microservices
Microservice possesses important characteristics like it claims the responsibility of a single task, it meets all the requirements of a single business, it can be individually deployed, it is loosely coupled and it is independently responsible as it is self-contained [9], [10].An enterprise application which is designed for a particular organization consists of different microservices which are responsible to communicate with one another with the help of a light-weight protocol and the API contract [2].MSA design is generally preferred to the conventional Monolithic Architecture due to the fact that it can be continuously deployed and its scalability has no parallel while the conventional Monolithic Architecture lacks all these important features.Because of this undeniable charm of MSA design, most of the enterprises tend to prefer this design [6].
In the beginning, the developers introduced the concept of service orientation with the help of SOA.Later, the evolutionary process took place and service orientation became capable of supporting the easy and swift operability of the applications designed as per requirement [12].Now, with more research being carried out in this field, researchers have started building independent, multiple and self-contained services to meet the challenges of the market [23].Because of these features, there is no denying the fact that Software Architecture plays very important role in software lifecycle to support the quality and vital attributes of the software [13].This approach helps the developers to make sure that quality attributes are up to the complete satisfaction and there exists no defect in the design of the software systems [23].If maintenance and development of information system needs to be improved, Component Based Development is useful and viable solution for these requirements [13].Need of SOA approach coupled with its products was felt because of the reasons that a Component Based Distributed Architecture was required in the market [30].Moreover, a solution was required to make the business agile and meet the challenges that arise when a particular business need is to be met.Moreover, a compatible and flexible solution was required which may become capable of keeping pace with the evolution that takes place with every single day that passes [8].www.ijacsa.thesai.org In service oriented software companies, the micro services have become architecture style that is inspired by service oriented computing.[3], [6].Microservices architecture helps to develop the complex application along with the distribution of the application in chunks or units by composing it [1].Nowadays, in any system, the scalability, service discovery and communication among services that are being supported by microservices architecture in development phase are two important sections [45].Simultaneously, microservices architecture also handles a heavy concurrency during input load [2].In fact, the purpose for using microservices is that it works on latest platform and is independently deployable [1].Microservices API can be written in any language.Then, Microservices architecture would automatically make all the languages compatible to display the desired output [4].
There is no denying the fact that the ever-changing evolutionary process of styles of communication and integration has proved to be cyclic.At times, some of its concepts seem to fall apart and looks as if these concepts would become obsolete with the passage of time but these concepts resurface in different and refined forms as the time elapses.Out of these two styles; Service Oriented Architecture is relatively an older concept because of obvious reasons [8].

B. Migration
System application migration is becoming an emerging issue with different challenges.Transform that migration is the procedure of moving from the usage of one functional environment to another operating environment with alike functionalities [32].The migration procedure contains, and making sure the new environment's features are exploited, old settings do not require changing and that present applications continue to work.

C. Migration to Microservices
The focus of migration is that it indicates some complex problems about the migration or conversion of system application into microservice.Migration of the system to microservice optimizes decentralization, replace-ability and autonomy of software architectures [32].Although, researchers are not convinced on any specific definition of microservice, its modelling techniques, and its properties [7], it is aware about system migration to microservices.
The components which are used in these vital software applications are made up of basic blocks which can be combined together depending upon the requirement [17].Microservice architecture is preferred owing to the reasons that it has the capability to address all the concerns starting from requirement of the enterprise to the operations to be performed by the software of a particular business for which it is designed.Moreover, it can also claim the responsibility for individual teams [25], [38].In this type of approach to find out the solution, the architecture, open source development, organizational structure and responsibility is vertically decomposed [14], [43].

D. Clustering
In this technique, reverse engineering also produces desired results.The technique used for the purpose of reverse engineering is clustering which is the considered the simplest and fundamental technique used in engineering and science [17].Main and most important objective of implementing this technique is to make the observations clearer to develop a better understanding.This better understanding makes it easy to develop complex knowledge structure from given features.Clustering technique or method is generally preferred to identify all the related components of System Software Application along with their responsibilities.As the input used in this technique highlights the interconnectivity of all these components, this clustering technique is quite useful to minimize the interconnection among different components to produce optimum results [30].Clustering is a technique in which large systems are decomposed into chunks and smaller and manageable systems in a distinct way that the entities which bear similarity with one another belong to the same subsystem while the entities with difference among one another are classified into different subsystems [17].Clustering technique is generally used in identifying the software components which generally adopts one metric so that the similarity of components may be measured.The main advantages of this technique are that low coupling and high cohesion of components are achieved.These advantages play very important role to solve the problems which require software evolution [21, [27].
There exist a lot of clustering techniques out of which Hierarchical Agglomerative Clustering (HAC) and K-means clustering stand out.Hierarchical Agglomerative Clustering (HAC) plays very important role to find out the number of clusters or segments which do not work well or cause inconvenience because of malfunctioning in practice [16].Moreover, K-means is also used to locate the numbers of clusters or segments which do not work well but the only problem that occurs is the fact that it cannot be applied in HAC algorithms.

E. Need of Systematic Mapping
Many different software companies have recently migrated to microservices or are considering migrating to microservices.These services are known as a style of an architecture that develops an application as a set of small services independently [7].Now, microservices are becoming very popular with cloud platform which is an emerging style in the context of application development due to its independency, scalability, flexibility, performance, and manageability [3], [5].There is a lot of research in this area that needs to be address.In the previous a few years, the software product companies and software consultancy firms have found the microservices approach useful because it allows the team and software organizations to increase the productivity [6].
Ever-changing needs of customers due to ever-changing situational contexts and business needs inspire the enterprises to introduce evolutionary concepts in software products to compete the market.Due to these developments, most of the Software Development Organizations and the businesses which include Software Production are facing bursting pressure to improve their Software Intensive Systems on daily basis.They can achieve this goal if they develop and release valuable and compatible software in a very short span of time to meet the challenges of the market [11].www.ijacsa.thesai.orgII.BACKGROUND KNOWLEDGE Literature review sheds light upon the importance and architecture of microservice.Moreover, this literature review indicates some complex problems about the migration or conversion of system application into microservice.This discussion in literature answers the very first question of this research paper.It highlights all the issues which involve migration to microservice [32].The main features which are creating and promoting the demand of such a technology are scalability, security, reliability, fast progress, and speed of the network [20].So, the researchers are trying hard to introduce new software architecture styles and software development methods to meet all the demands of enterprises [6].Migration of the system to microservice optimizes decentralization, replace-ability, traceability and autonomy of software architectures.Although, researchers are not convinced on any specific definition of microservice, but it is modelling techniques, and its properties [7].
Microservice plays very important role to capture software maintenance, architecture and evolution [15].If software architecture recovery is taken into account, it becomes clear that the prevailing techniques in this field are quite limited because all these techniques are based upon reverse engineering [5].
Software designer or developer generally encounters two types of problems in practical.First issue is embedded in the fact that it is quite tough to determine specific cluster which is used for highly coupled components [15].Second problem in line is to determine the cluster mapping which is applied on software modules [17].Upon investigation, the technique of decomposition of software has made sure that the source code of software is in accordance with all the requirements gathered.
Main drawback of the traditional monolithic services is its lack of scalability when a certain task is to be executed within the service [9].Long software release cycle because of the complexity of system is also a hurdle in traditional monolithic services.Because of these limitations monolithic approach has shifted towards the development of modern cloud application [35], [36].
ICT is making a name and becoming a reliable partner in demand driven and dynamic market environment because of its customer experienced, customer centered and everchanging demand driven competitive market [38].Because of this competitive race of different enterprises, most of the companies are transforming themselves into virtually organized bodies with pure digital styles.These virtually organized bodies are supported and enabled by the applications based on microservice [18].Genuinely, microservice in any application is responsible to execute a single task, i.e. it works on only one business requirement at a time.Moreover, it is self-contained that it can complete its responsibility without depending upon any other software [6].For example, it contains business and data layers, and presentation all together.Additionally, it is loosely coupled, light-weighted and autonomous [1].
If the applications are to be run in cloud with efficiency, it requires much more skill than what is necessary to deploy any type of software in virtual machines.It is always recommended to manage cloud applications continuously in order to utilize their resources according to the incoming load and to face the failures in order to replicate and restate all the components to provide resilience in case of unreliable infrastructure [42].Once a program or software is designed keeping in view all the requirements, it becomes extremely tough for the designer to introduce radical changes which are later on demanded by business models or user frequently because it becomes more complicated for the developer to make changes when the code starts expanding because of the involvement of different people or specialist who make changes in the software [14], [26].As more and more effort is required to coordinate for updating in tightly coupled model of monolithic approach, this whole process ultimately makes the release cycle of the application slow [37].It also makes the model fragile and unreliable.Scalability is also a vital feature which is required in the operation and development of enterprise applications [9], [14], [22].

A. Planing of Mapping
This mapping study, researcher is combining the knowledge for all issues which are related to system migration.There are different types of systems migration techniques but researcher is migrating the system migration that is based on components.This knowledge will help us to migrate the system application and mitigate these issues during migration and why researcher needs migration of system application.This study will aware about microservices understanding and its characteristics.

B. Search Strategy
The term of "microservice" keyword and microservice architecture that found in the published articles journals, and conferences but rest were excluded.Our selected research papers 48 which are published between 2010 and 2017.Selected research papers" electronic digital libraries are included which are Four (IEEEXplore, ACM DL, DirectScience, ResearchGate, GoogleScholar) (Table I).In this systematic mapping study the selected papers are maximum from the IEEEXplore.This section suggests that many studies were deeply checked before the selection of this study.Moreover, relevance to the research question was also given due consideration.At first, the papers were included after carefully reading title and abstract.In case of any ambiguity about the paper in title and abstract section, the researcher reviewed the complete paper by applying inclusion and exclusion criteria.

E. Search Engine
The term of "microservice" keyword and microservice architecture that found in the published articles journals, and conferences but rest were excluded.Selected research papers" electronic digital libraries are included which are four (IEEEXplore, ACM DL, DirectScience, GoogleScholar).In this systematic mapping study the selected papers are maximum from the IEEEXplore.

F. Inclusion Criteria
 Studies had been published in journals, conferences, and workshops.
 Studies must be written in English.
 Studies must be accessible electronically.
 Collected studies must be published after 2010.
 Research papers will be included which are based on the expert opinion  Research papers related to the topic, will be included as weak evidence which do not provide evidence

G. Exclusion Criteria
 Non peer reviewed studies (tutorials, slides, editorials, posters, keynotes) are also excluded.
 Peer reviewed but not published in journals, or conferences (e.g.Book, and blogs articles).

 Publications not in English
 Electronically non-accessible.

H. Conducting Mapping Study
Research papers which are published in different conferences or journals that would be a complete version, on the basis of studies, discussed in this article, will be included.Selected primary studies are 48 (Table II).But the further evaluation for these studies researcher has included the studies that are most appropriate to the topic.IV shows the challenges of microservices.
2) Quality Attributes of Microservices (RQ2): These are quality attributes Scalability, Independency, Maintainability, Deployment, Performance, Reusability, Security, and Load Balancing have been discussed in this mapping study [9], [42].But researcher have identified few more attributes of microservices which are Reliability, Portability, Availability, these are also important attributes.Other previous quality attributes have been discussed in this mapping study [6], but researcher find out different few more.
3) Motivation for Microservice Architecture (RQ3): Microservices is a new emerging style which is becoming very familiar adopting by industries.It helps the developer to develop the large and complex application to distribute the application in chunks or unit by composing this application [1].It can be written in language by using APIs for microservices [3]- [5].Mostly papers are discussing about its independent services that can be upgrade or new addition or services any time.Table III shows the motivations of Microservices.This question aim to identify the new quality attributes of microservice architecture.

3
What are the main motivations for using MSA?
In this question will discuss the benefits of microservices and the aim is to get insight in what are the main reasons for organizations to architect in a microservices style.

4
What are the existing techniques to migrate the application to microservices?
The main to explore this question to highlight the techniques and methods which are helping to migrating the system application from traditional to microservices.www.ijacsa.thesai.org

4) Migrating to Microservices (RQ4):
There is not proper technique that helps to migrate the complete application to microservices.One paper introduces its method to migrate the application to microservices by independent components but not dependent components [24], [36].But this method does not help to migrate the complete system to microservices.Fig. 4 shows the analysis result of all factors that how many papers have discussed each factor.It is the big challenge for software architect considering microservices is the need to reimagine and also re-think how the application will work.
Integration testing, it is necessary for the quality assurance engineer to clearly understand each of the different services in order to write the test cases effectively.Debugging meanwhile can mean the QA engineer having to analyze logs across different microservice environments. [6], [31], [33], [34] 3 System migration to microservices Old system application needs to be migrated to microservices. [3], [9], [24], [31], [33], [34] 4 Databases need to be completely decoupled from each other.
It"s easy to be decoupled but also a big challenge because previous database schemas worked with different table by its relations now in microservices it need to be changed this.When transitioning to cloud microservices, you need database models 100% decoupled from each other. [6], [9], [31]

Performance monitoring under continuous software change
It"s part of microservice architecture that need to be continually changes.Performance does matter very much when following this microservice architecture. [2], [3], [4], [6], [10], [22], [31], [33], [34] Fig. 5 found the frequency of all factors that how many papers discussed the each factor.Researcher analyze the result of factors by values, these values mean that how many time each factor is used in literature that is counted as a value of factor for each paper.It means it will help to find the importance of factor and literature focus on factor.Researcher attached the results of all factors in Appendix A section, factor analysis result table (Tables VIII  and IX).This research brings forth the number of factors in row and name of factors in column.And in Appendix B section, Fig. 6, 7 and 8 show the result in different view.

IV. CONCLUSION
This critical evaluation and mapping study has reviewed carefully the given studies on microservices architecture and the relevant architectural challenges reported in literature.Researchers have discussed in details about microservices.Write the planning of mapping study to produce the results that how it will be shown in this study and the major keywords that support to find the literature related to microservices.Research flow diagram is showing the flow or this study the selection of research papers.Research Questions is a major part of this study these are impact on result of this study.The first research question addresses the different challenges in microservices that is shown in Fig. 1 challenges keywords.These challenges keywords are discussed in depth in literature, but open issues are not deeply discussed.The second question discusses about quality attributes of microservices, most of them quality attributes are discussed in previous literature, but the researcher has identified few more quality attributes which are also important in microservices.The third question discusses motivations of microservices that can be seen in literature and comparison Table IV.The last fourth question is very important of this study is migration of system application to microservices, it shows the importance of migration to microservices in the comparison Table IV.Researcher found the list of emerging challenges in Table V.And highlight the factors of microservices in a list form of Table VII then use the Minitab static tool to analyze the factors of microservices and produce the result in the form of quantitative values and different graph.Scree plot is the major graph of this analysis and is discussed above in Fig. 5.Other graph and results are shown in Appendix sections which are Fig. 6, 7, and 8.

V. FUTURE WORK
Analyzed material is based on the state of the art research mined for migration, clustering, and services of Microservices.There is need for performing a detailed empirical analysis of system migration based on software industry input to establish a gap between theory and practice.
Further plans include for proposal of a migration technique for practitioners of micro-services, by which guidelines for software firms shall be proposed to increase their scalability with productivity.Future research in the area shall consider comparison of proposed methods to similar methods in literature, using a suitable framework.www.ijacsa.thesai.org

Fig. 1
Fig. 1 shows all the challenges keywords of architecture, this figure shows the growth of keywords Table VI.All these keywords have been reported in literature.

Fig. 2
Fig. 2 shows all factors of microservices architecture that can be easily measured.Graph shows the importance of factors by percentages.

Fig. 3
Fig. 3 shows the variation of all factors.Researchers use the Minitab stats tool to find the variations of all factors.

TABLE II
These challenges are shown in the challenges keyword graph in Fig. 2. Selected papers have discussed about challenges in depth.Researchers have shown a list of open issues in table of current challenges that are open issues of microservices architecture.These open challenges are not discussed in detail in literature.Table

TABLE III .
RESEARCH QUESTIONS

TABLE IV .
COMPARISON BETWEEN TRADITIONAL & MICROSERVICES ARCHITECTURE

TABLE VI .
FACTORS RELATED TO CHALLENGES

TABLE VII .
IDENTIFIED FACTORS LIST OF MICROSERVICES In this section, researcher used a Minitab tool of stats to analyze the factors of microservices.This tool creates the four different graphs based on analysis result.Graph of scree plot tell us about variation among each factor and show it by dotted line that where the variation is occurring and how much it is.