globalizing existing applications

8
www.infosys.com White Paper Globalizing Existing Applications - Radha Krishna C, Amit Chaudhury Abstract Globalizing existing applications is a strategy for enterprises to engage with customers, vendors and all other business stakeholders across heterogeneous cultures and geographies. The paper suggests automating the process of globalizing existing applications, by reducing manual intervention to reduce time to market, maintain current quality standards and to improve productivity. Globalization is a process of making applications compatible across heterogeneous cultural and regional settings. This paper majorly addresses the importance, challenges and approaches for globalizing existing applications. This paper is not intended for building new applications supporting globalization.

Upload: infosys

Post on 14-Aug-2015

258 views

Category:

Economy & Finance


0 download

TRANSCRIPT

Page 1: Globalizing Existing Applications

www.infosys.com

Whi

te P

aper

Globalizing Existing Applications

- Radha Krishna C, Amit Chaudhury

Abstract

Globalizing existing applications is a strategy for enterprises to engage with customers, vendors and all other business stakeholders across heterogeneous cultures and geographies. The paper suggests automating the process of globalizing existing applications, by reducing manual intervention to reduce time to market, maintain current quality standards and to improve productivity.

Globalization is a process of making applications compatible across heterogeneous cultural and regional settings. This paper majorly addresses the importance, challenges and approaches for globalizing existing applications. This paper is not intended for building new applications supporting globalization.

Page 2: Globalizing Existing Applications

2 | Infosys

Importance of globalizationGlobalizing existing applications is a strategy for enterprises today to engage with customers, vendors and all other business stake holders. In general, with high mergers & acquisitions in the financial services industry, there arises the need for enterprises today for their existing applications and products to be compatible across various regions, local laws & regulations, industry specific standards and multi-culture environments to enhance usability.

process; however some manual intervention is still required for completing the globalization process.

Globalization approachGlobalizing existing applications has multiple steps from identifying applications for globalization till testing the application as shown below

Identify applications:

Based on business drivers, enterprises should brainstorm and identify applications for globalization.

Identify the Code Base-line:

Once application identification process is completed, identify the code base-line on which the tool should be applied. Appropriate configuration management tool and process has to be defined for regular code reconciliation.

Select & apply tool:

This is an important step where a tool can be applied on a code base to automate changes. Select a tool that satisfies the application’s globalization need and can reduce majority of development effort thereby improving productivity.

Manual intervention:

Once tool is applied, all required manual changes required have to be implemented to make system ready for testing process. The different areas of manual intervention are explained in later sections.

ChallengesMany of existing applications in enterprise repository have not been built with globalization in mind. There are several challenges while globalizing existing applications. The challenges are across different layers like presentation layer, business layer and data layer of a system. Below are some of the challenges identified and categorized:

PReSenTATIOn lAyeR

• UserInterfacedistortion

• Culturespecificdisplayfordate&money

• Culturespecificcolourandimages

• Hard coding in the formof static controls,messageboxes,conditional statements, constants etc.

BUsInesslayer

• supportforinterfacingwithdifferentupstreamanddownstreamsystems

• supportingdifferentnon-functional requirementsespeciallyin scalability, performance and maintainability of existing applications

• Hardcodingintheformofconstantsandconditionalstatements

DATA lAyeR

• ConvertingdatabasetosupportUnicode,tosupportdifferentcharacter set

• Dataencoding&decodingsupportforlocalcharacters

• Hardcodingin“WHere”clauseand“HaVInG”clauseofaquery

• HardcodingofreturntypesandOutputparametersofastoredprocedure

• Identifyingandmigratingexistingdata,especiallysupportingmaster data and lookup data.

Importance of ToolsKeeping above listed challenges in mind, globalizing existing applications is not an easy task for enterprises. A manual exercise to globalize existing application can lead to many problems like inducing more defects, inconsistent coding standards that directly impacts the effort and quality of application. To reduce the time to market and maintain the current quality standards enterprises should depend on tools to globalize existing applications. enterprises should develop/depend on tools that can automate the complete globalization

Globalization

APPROACHTe

stin

g

Identify Applications Identify Code BaseManual Intervention Apply Tool

1

4

3

2

5

Page 3: Globalizing Existing Applications

Infosys | 3

Ready for Testing:

The next phase once the changes are implemented is testing. even these applications should undergo normal testing life cycle. The load testing and performance testing play an important role because of the increase in the usage of the application. The converted code base is now ready for testing.

SolutionMost of the financial institutions are expanding their business globally, and there is a need of converting their existing applications globalized. All MnC’s are now looking into converting their existing applications to global applications with minimal cost.

One of the major global Insurance Company, wanted to globalize couple of their customer oriented applications. The rest of the article discuss about common areas that has to be processed while converting applications as globalized applications.

enterprises should build/look for a tool to address globalization challenges explained above and to satisfy the need of globalizing existing applications. The features of the tool are elaborated in features section below. The tool mainly should work on given code base and identify and address all challenge areas inside the code. The tool will parse complete code base for a given project in the application and can be configured to use 3rd party translators, e.g translators from Microsoft or Google. enterprises must choose the right translator for their globalization requirement.

Tool featuresThe tool should have the following features

• Generate resource files for multiple cultures at single time using Translators

• Identify all static labels, dropdowns holding static data in designer forms

• Identify hard coding in the form of message boxes, conditional statements and local variables

• Identify constants and convert them to read-only variables, and assign dynamic values in constructor

• Identify switch/case statements and convert them to If/else conditions. Some manual intervention might be required in case of nested switch/case statements

• UsercandefineattributestobechangedinXMlfiles,andthetoolchangesXMlattributestokeyvaluesinsteadofhardcodedtext

• TherespectiveXMlparsingcomponentwillbechangedtoreadthe key value from resource bundles

• Import/export feature is built-in as part of the tool, so that data in resource bundles can be exported for data verification process for language experts and the verified data can be imported back to resource bundles.

• ConvertdatabasetoUnicodestandardsbychangingthedatatype defined in tables, stored procedures, functions, triggers and local variables defined in all DMl statements.

• Ability to choose master/lookup tables in database, and generate culture specific master data by connecting to a translator.

• abilitytoexportresourcebundles’informationinCsVorexcelformatandshouldhaveanimportfeaturetoreadfromaCsVorexcel file.

Where manual intervention requiredManual intervention is generally required in a few scenarios even after applying tool to code base.

• set couple ofmandatory properties atUI level cannot beautomated to support globalization, some manual intervention required for such properties, for example localizable property forUIformsinMicrosoftWinForms.Thedefaultvalueforthisproperty is ‘false’ and it has to be set to ‘true’ like, localizable propertytotrueforeveryUIformmanually

• Create local resource files, tool won’t create any global resource files

• Tool cannot eliminate thedistortion that canhappen inUIbecause of variance in length of strings in every culture

• Some manual intervention required in case of nested switch/case statements

• Manual intervention is required in case of complex queries defined in the form of in-line queries and stored procedures

• ManualinterventionisrequiredfordifferentclauseslikeWHere,HaVInGdefinedinstoredprocedures&in-linequeries

Page 4: Globalizing Existing Applications

4 | Infosys

Tool architecture Tool considers project file as an input from code base, and parses each and every line of a file and identifies hard coded data in multiple forms and creates resource files automatically for required cultures. Tool will do necessary modifications to the code base to make sure that all hard-coded values have to be rendered from resource bundles in the form of key/value pairs. Tool will do required changes in the code to get the current culture set up for a given instance.

Tool accepts project file as an input, and identifies language used to develop the project and will call respective parser component to start parsing process. As part of its parsing, tool uses couple of low level classes to handle hard coded details, designer file details, configuration details and database level details.

Tool

Tool accepts a project as input

Pickup the right code base.Code base contains

Projects and Every project contains UI forms, Templates, XML �les, Class Files

Input

Translator Services

Solution Flow

Resource Files

Tool Output

1. Tool creates resource �les for every UI Form2. A resource File is combination of Key /Value Pairs3. Every culture will have its own Resource File created

Updated Code base

1. Newly Created Resource Files should be included to Code base2. Update Localizable Property for every form3. All hard coding will be replaced by function calls

Page 5: Globalizing Existing Applications

Infosys | 5

The below diagram explains high level architecture

HardcodeHandlercomponentwilllookintohardcodeobservedintheformofmessageboxesoralerts,conditionalstatementsandconstantsused in the system.

ConfigHandler componentwill look into thechanges required in theconfigurationfiles likeapp.configandother xmlfilesused in theapplication.

DesignerHandlercomponentsmainlylooksintoUIaspect,identifiesallhardcodeimplementedinstaticcontrolslikelabels,checkboxesand option buttons, Grids and list boxes.

DBHandlercomponentconnects toadatabaseandconvertalldatabaseschemas/storedProcedures/triggersand functions toUnicodecompatible. This will help to read content from master/lookup tables and connect to translator and provide the necessary culture specific data.

Parser Component

DesignerHandler

HardCodeHandlerCon�gHandler

Language Identi�er

AlertHandler ConditionsHandler ConstantsHandler

StaticControl Handler GridHandler

XMLHandler

DBHandler

DMLHandler DDLHandler

High Level Architecture

Page 6: Globalizing Existing Applications

6 | Infosys

An automated process will reduce the percentage of induced defects because of the necessary changes to be implemented.

The tool creates resource files automatically as part of its parsing process to make application more scalable.

BenefitsUsingthetoolaspartofglobalizingexistingapplicationswill reduce manual intervention, reduce time to market, and will maintain the current quality standards of the application without any compromises.

Page 7: Globalizing Existing Applications

Infosys | 7

About the Authors

Radha Krishna C isaTechnologyarchitectwithFinanceservicesandInsuranceGroup,InfosysTechnologies.radhaKrishnaChasmorethanelevenyearsoftechnologyconsultingexperiencespecializing inFinancialservicesandInsurancemarket.His focusareas includeSystem Architecture, System Design, Delivery Strategies, Technology evaluations and Code Reviews.

Radha Krishna can be reached at [email protected]

Amit Chaudhary isisaseniorsoftwareengineerwithFinanceservicesandInsuranceGroup,InfosysTechnologies.amitChaudharyhasmorethanfouryearsoftechnologyconsultingexperiencespecializinginFinancialservicesandInsurancemarket.HisfocusareasincludeapplicationdevelopmentandUnitTestingactivities.

Amit Chaudhury can be reached at Amit_Chaudhary01 @infosys.com

ConclusionThe proposed tool mainly focuses on converting existing applications as globalized applications and ensures that existing code is converted to support multiple cultures. The tool primarily reduces development effort; delivery teams should plan for good amount of effort for various testing activities like unit testing and regression testing which are beyond the scope of the proposed tool.

reFerenCes

http://www.infosys.com/IT-services/application-services/Documents/designing-global-applications.pdf

Page 8: Globalizing Existing Applications

© 2012 Infosys Limited, Bangalore, India. Infosys believes the information in this publication is accurate as of its publication date; such information is subject to change without notice. Infosys acknowledges the proprietary rights of the trademarks and product names of other companies mentioned in this document.

About Infosys

Many of the world's most successful organizations rely on Infosys to deliver measurable business value. Infosys provides business consulting, technology, engineering and outsourcing services to help clients in over 30 countries build tomorrow's enterprise.

For more information, contact [email protected] www.infosys.com