beyond the chrome building multi-lingual and multi-locale business processes 24 th...

Post on 27-Mar-2015

213 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Beyond the ChromeBeyond the ChromeBuilding Multi-Lingual and Building Multi-Lingual and Multi-Locale Business ProcessesMulti-Locale Business Processes

2424thth Internationalization and Unicode Internationalization and Unicode ConferenceConferencePresented by Addison P. PhillipsPresented by Addison P. PhillipsDirector, Globalization ArchitectureDirector, Globalization ArchitecturewebMethods, Inc.webMethods, Inc.

What is the presentation about?What is the presentation about?

Internationalization in a service oriented architecture:Internationalization in a service oriented architecture:

What are business processes? How do they differ from What are business processes? How do they differ from “applications”?“applications”?

How do you approach internationalization of a business How do you approach internationalization of a business process?process?

Differences between internationalizing GUI and processes.Differences between internationalizing GUI and processes. Data structuring basicsData structuring basics I18N Effects on ProcessingI18N Effects on Processing

What is this presentation about? (drooling What is this presentation about? (drooling version)version)

There is very little information There is very little information about about internationalization of complex internationalization of complex enterprise systems.enterprise systems.

So… Internationalization folks So… Internationalization folks don’t don’t always have a good always have a good understanding understanding of the issues.of the issues.

Which leads to wanting locales in Which leads to wanting locales in thethewrong places, misunderstandings wrong places, misunderstandings withwithcore developers, etc.core developers, etc.

Shiny ChromeShiny Chrome

Chrome, of course, is the shiny metal stuff you Chrome, of course, is the shiny metal stuff you most commonly see on automobiles.most commonly see on automobiles.

Chrome (in software) refers to the attractive, but Chrome (in software) refers to the attractive, but not necessarily functional, user interface not necessarily functional, user interface components. Like nifty buttons and graphics used components. Like nifty buttons and graphics used to make up a website.to make up a website.

Model-View-Controller & Model-View-Controller & InternationalizationInternationalization

MVC is a traditional MVC is a traditional software pattern.software pattern.

In MVCIn MVC Models contain the dataModels contain the data

structures and most of thestructures and most of thebusiness logic.business logic.

Controllers receive input Controllers receive input andanddecide which actions to decide which actions to taketake(routing).(routing).

Views contain the user Views contain the user interface components (or interface components (or chrome).chrome).

Shiny I18N…Shiny I18N…

Internationalization mostly deals with presentation and Internationalization mostly deals with presentation and input problems:input problems:

Localizability and resource management (View)Localizability and resource management (View) Formatting objects as strings (View)Formatting objects as strings (View) Validation of input (Controller)Validation of input (Controller) Date and timezone issues (View, Controller)Date and timezone issues (View, Controller) Character encoding issues (View, Controller)Character encoding issues (View, Controller)

Common internationalization rarely applies to the Common internationalization rarely applies to the model.model.

Middleware, platform and operating environment Middleware, platform and operating environment architects rely on this fact to avoid internationalization.architects rely on this fact to avoid internationalization.

And A Good Thing Too…And A Good Thing Too…

Late localization, formatting, and validation are a good Late localization, formatting, and validation are a good thing.thing.

Separation of presentation from logic.Separation of presentation from logic. Separation of presentation from data model.Separation of presentation from data model. Locale and culturally neutral business logic (models).Locale and culturally neutral business logic (models). Deliver language according the user requirements.Deliver language according the user requirements.

But…But…

What about that nagging feeling that What about that nagging feeling that internationalization also applies to middleware and internationalization also applies to middleware and back-end systems?back-end systems?

What’s a “Business Process”?What’s a “Business Process”?

Generally, a Generally, a compositecomposite application, rather than a application, rather than a discrete collection of logic:discrete collection of logic:

May be composed of many applications.May be composed of many applications. Service or task oriented.Service or task oriented. May incorporate human interactive steps.May incorporate human interactive steps.

““Process a Purchase Order”Process a Purchase Order”

Involves many applications:Involves many applications: Finance, ERP, Customer Profile, B2B, CRM, etc.Finance, ERP, Customer Profile, B2B, CRM, etc.

Highly distributedHighly distributed

ComplexComplex

MutableMutable

Business ProcessesBusiness Processes

Business processes have three parts:Business processes have three parts:““Tasks" or "steps". Tasks" or "steps".

"Clients" "Clients"

"Documents" or "messages" "Documents" or "messages"

Relating Processes to MVCRelating Processes to MVC

Surface appearance: the process is all model.Surface appearance: the process is all model.

Complex processes: each task may have:Complex processes: each task may have: One or more viewersOne or more viewers One or more controllersOne or more controllers It’s own modelIt’s own model

Web service orchestrationWeb service orchestration

International Business ProcessesInternational Business Processes

What are the requirements for making aWhat are the requirements for making a business process business process sensitive to differences in the way your business operates in sensitive to differences in the way your business operates in different markets (country, state, city, language, social different markets (country, state, city, language, social grouping, etc.)?grouping, etc.)?

Modify your documentsModify your documents (data structures) to contain the (data structures) to contain the necessary information in the necessary format.necessary information in the necessary format.

Modify your business logicModify your business logic to encapsulate or reflect to encapsulate or reflect global business conditions.global business conditions.

Intelligently model user preferencesIntelligently model user preferences, partner profiles, , partner profiles, and other metadata to tailor processing and business and other metadata to tailor processing and business logic to a specific client’s needs.logic to a specific client’s needs.

DocumentsDocuments

These are the data structures in a business process.These are the data structures in a business process. ““Real” documents: XML files, flatfiles, EDI, etc.Real” documents: XML files, flatfiles, EDI, etc. SOAP documentsSOAP documents Message broker or message queue message (as with JMS Message broker or message queue message (as with JMS

or MQ)or MQ) Might even be something like an EJB or data bean.Might even be something like an EJB or data bean.

Documents form the “model” on which the business Documents form the “model” on which the business process operates.process operates.

International Implications for the ModelInternational Implications for the Model

Need to handle cultural differences.Need to handle cultural differences. Different fields for different countries, markets or regions.Different fields for different countries, markets or regions. Different data routing, processing or logic may apply.Different data routing, processing or logic may apply. Different models may be needed.Different models may be needed. Culture, region, locality, etc. may apply.Culture, region, locality, etc. may apply.

Issues with Data StructuresIssues with Data Structures

Documents and data structures shouldn’t include Documents and data structures shouldn’t include locales.locales.

Basic datatypes are (mostly) locale-neutral. Basic datatypes are (mostly) locale-neutral. (cf. XML Schema, Java, etc.)(cf. XML Schema, Java, etc.)

If a data structure is composed of locale neutral types, If a data structure is composed of locale neutral types, how is it locale affected?how is it locale affected? Why is it designed in a locale affected way?Why is it designed in a locale affected way?

Documents may include Documents may include languagelanguage identifiers for text. identifiers for text. Why do you have text there? Can you do late(r) Why do you have text there? Can you do late(r)

localization?localization? Allow multiple resolution.Allow multiple resolution.

For Example: CurrencyFor Example: Currency

<price>123.45</price><price>123.45</price>

<price><price>

<amount>123.45</amount><amount>123.45</amount>

<locale>en-US</locale><locale>en-US</locale>

</price></price>

<price><price>

<amount>123.45</amount><amount>123.45</amount>

<currency>USD</currency><currency>USD</currency>

</price></price>

For Example: Postal AddressFor Example: Postal Address

<address><address> <addr1>123 Main St.</addr1><addr1>123 Main St.</addr1> <city>San Jose</city><city>San Jose</city> <state>CA</state><state>CA</state> <zip>12345</zip><zip>12345</zip> <locale>en-US</locale><locale>en-US</locale></address></address>

<address><address> <country>US</country><country>US</country> <addr1>123 Main St.</addr1><addr1>123 Main St.</addr1> <city>San Jose</city><city>San Jose</city> <province>CA</province><province>CA</province> <postalcode>12345</postalcode><postalcode>12345</postalcode></address></address>

For Example: SOAPFaultFor Example: SOAPFault

<env:Fault><env:Fault> <env:Code><env:Code> <env:Value>env:Sender</env:Value><env:Value>env:Sender</env:Value> <env:Subcode> <env:Subcode> <env:Value><env:Value>m:MessageTimeoutm:MessageTimeout</env:Value> </env:Value> </env:Subcode></env:Subcode> </env:Code></env:Code> <env:Reason><env:Reason> <env:Text xml:lang="en"><env:Text xml:lang="en">Sender TimeoutSender Timeout </env:Text></env:Text> </env:Reason> </env:Reason> ……

Consider Global RequirementsConsider Global Requirements

Need to consider all of the different requirements for Need to consider all of the different requirements for separate applications with the same data structure.separate applications with the same data structure.

Modify Business Logic for Global Modify Business Logic for Global RequirementsRequirements

De-normalization of processingDe-normalization of processing RegulatoryRegulatory CulturalCultural Business PracticesBusiness Practices RoutingRouting Etc.Etc.

Routing based on customer profile.Routing based on customer profile.

Routing based on user profile.Routing based on user profile.

Rule differences based on market.Rule differences based on market.

… … and so on.and so on.

Process ExecutionProcess Execution

Internationalization affects process execution:Internationalization affects process execution: Collation sequences for “result sets” and queriesCollation sequences for “result sets” and queries Natural language processingNatural language processing Differentiating “templates” from “alternate content”Differentiating “templates” from “alternate content” Processing rules depending on:Processing rules depending on:

Who the user or trading partner is.Who the user or trading partner is. Where the transaction is taking place.Where the transaction is taking place. Tax regime, legal authority, local calendarTax regime, legal authority, local calendar Etc.Etc.

The interplay of all of the above.The interplay of all of the above.

Policy based execution.Policy based execution.

Execution Policies in Service Oriented Execution Policies in Service Oriented ArchitecturesArchitectures

How are user preferences propagated?How are user preferences propagated? ProfilesProfiles SessionsSessions CookiesCookies Explicitly in each requestExplicitly in each request What makes sense?What makes sense?

The interesting data is usually application driven.The interesting data is usually application driven.

May need a short-hand and a long-hand version.May need a short-hand and a long-hand version.

Airplane ReservationAirplane Reservation

Things you can select:Things you can select: Start, destination, seating, meal, reminder email, route, Start, destination, seating, meal, reminder email, route,

class, etc.class, etc.

Things you might prefer:Things you might prefer: SFO, IAD, aisle, regular, yes, direct, business, etc.SFO, IAD, aisle, regular, yes, direct, business, etc.

Things you might infer from a locale:Things you might infer from a locale: Language of the reminder email?Language of the reminder email?

User MetadataUser Metadata

Vegetarian, non-smoking, blonde, sports car-localeVegetarian, non-smoking, blonde, sports car-locale

vs.vs.

en-USen-US

Maybe users don’t have locales either?Maybe users don’t have locales either?

Maybe locales are application specific?Maybe locales are application specific?

What does your application do on the Front Door?What does your application do on the Front Door?

Internationalization: Lost in the Fog…Internationalization: Lost in the Fog…

If it doesn’t use If it doesn’t use localeslocales and has all this and has all this personalization stuff and data structuring personalization stuff and data structuring stuff, then is it still stuff, then is it still internationalizationinternationalization? ? Isn’t it just good development?Isn’t it just good development?

““Globalization is a fundamental Globalization is a fundamental architectural approach. It is architectural approach. It is how you thinkhow you think when you are writing the software. It is not when you are writing the software. It is not a feature.” a feature.” (Glen Perkins, (Glen Perkins, Globalization Architect, MacromediaGlobalization Architect, Macromedia))

Q&AQ&A

top related