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

26
Beyond the Chrome Beyond the Chrome Building Multi-Lingual and Building Multi-Lingual and Multi-Locale Business Processes Multi-Locale Business Processes 24 24 th th Internationalization and Unicode Internationalization and Unicode Conference Conference Presented by Addison P. Phillips Presented by Addison P. Phillips Director, Globalization Architecture Director, Globalization Architecture webMethods, Inc. webMethods, Inc.

Upload: austin-ortiz

Post on 27-Mar-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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.

Page 2: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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

Page 3: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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.

Page 4: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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.

Page 5: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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).

Page 6: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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.

Page 7: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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?

Page 8: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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.

Page 9: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

““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

Page 10: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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"

Page 11: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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

Page 12: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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.

Page 13: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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.

Page 14: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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.

Page 15: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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.

Page 16: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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>

Page 17: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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>

Page 18: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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> ……

Page 19: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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.

Page 20: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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.

Page 21: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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.

Page 22: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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.

Page 23: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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?

Page 24: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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?

Page 25: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

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))

Page 26: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P

Q&AQ&A