Title: Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes
1Beyond the ChromeBuilding Multi-Lingual and
Multi-Locale Business Processes
- 24th Internationalization and Unicode Conference
- Presented by Addison P. Phillips
- Director, Globalization Architecture
- webMethods, Inc.
2What is the presentation about?
- Internationalization in a service oriented
architecture - What are business processes? How do they differ
from applications? - How do you approach internationalization of a
business process? - Differences between internationalizing GUI and
processes. - Data structuring basics
- I18N Effects on Processing
3What is this presentation about? (drooling
version)
- There is very little information about
internationalization of complex enterprise
systems. - So Internationalization folks dont always have
a good understanding of the issues. - Which leads to wanting locales in thewrong
places, misunderstandings withcore developers,
etc.
4Shiny Chrome
- Chrome, of course, is the shiny metal stuff you
most commonly see on automobiles. - Chrome (in software) refers to the attractive,
but not necessarily functional, user interface
components. Like nifty buttons and graphics used
to make up a website.
5Model-View-Controller Internationalization
- MVC is a traditional software pattern.
- In MVC
- Models contain the datastructures and most of
thebusiness logic. - Controllers receive input anddecide which
actions to take(routing). - Views contain the user interface components (or
chrome).
6Shiny I18N
- Internationalization mostly deals with
presentation and input problems - Localizability and resource management (View)
- Formatting objects as strings (View)
- Validation of input (Controller)
- Date and timezone issues (View, Controller)
- Character encoding issues (View, Controller)
- Common internationalization rarely applies to the
model. - Middleware, platform and operating environment
architects rely on this fact to avoid
internationalization.
7And A Good Thing Too
- Late localization, formatting, and validation are
a good thing. - Separation of presentation from logic.
- Separation of presentation from data model.
- Locale and culturally neutral business logic
(models). - Deliver language according the user requirements.
- But
- What about that nagging feeling that
internationalization also applies to middleware
and back-end systems?
8Whats a Business Process?
- Generally, a composite application, rather than a
discrete collection of logic - May be composed of many applications.
- Service or task oriented.
- May incorporate human interactive steps.
9Process a Purchase Order
- Involves many applications
- Finance, ERP, Customer Profile, B2B, CRM, etc.
- Highly distributed
- Complex
- Mutable
10Business Processes
- Business processes have three parts
- Tasks" or "steps".
- "Clients"
- "Documents" or "messages"
11Relating Processes to MVC
- Surface appearance the process is all model.
- Complex processes each task may have
- One or more viewers
- One or more controllers
- Its own model
- Web service orchestration
12International Business Processes
- What are the requirements for making a business
process sensitive to differences in the way your
business operates in different markets (country,
state, city, language, social grouping, etc.)? - Modify your documents (data structures) to
contain the necessary information in the
necessary format. - Modify your business logic to encapsulate or
reflect global business conditions. - Intelligently model user preferences, partner
profiles, and other metadata to tailor processing
and business logic to a specific clients needs.
13Documents
- These are the data structures in a business
process. - Real documents XML files, flatfiles, EDI, etc.
- SOAP documents
- Message broker or message queue message (as with
JMS or MQ) - Might even be something like an EJB or data bean.
- Documents form the model on which the business
process operates.
14International Implications for the Model
- Need to handle cultural differences.
- Different fields for different countries, markets
or regions. - Different data routing, processing or logic may
apply. - Different models may be needed.
- Culture, region, locality, etc. may apply.
15Issues with Data Structures
- Documents and data structures shouldnt include
locales. - Basic datatypes are (mostly) locale-neutral.
(cf. XML Schema, Java, etc.) - If a data structure is composed of locale neutral
types, how is it locale affected? - Why is it designed in a locale affected way?
- Documents may include language identifiers for
text. - Why do you have text there? Can you do late(r)
localization? - Allow multiple resolution.
16For Example Currency
- ltpricegt123.45lt/pricegt
- ltpricegt
- ltamountgt123.45lt/amountgt
- ltlocalegten-USlt/localegt
- lt/pricegt
ltpricegt ltamountgt123.45lt/amountgt
ltcurrencygtUSDlt/currencygt lt/pricegt
17For Example Postal Address
- ltaddressgt
- ltaddr1gt123 Main St.lt/addr1gt
- ltcitygtSan Joselt/citygt
- ltstategtCAlt/stategt
- ltzipgt12345lt/zipgt
- ltlocalegten-USlt/localegt
- lt/addressgt
ltaddressgt ltcountrygtUSlt/countrygt
ltaddr1gt123 Main St.lt/addr1gt ltcitygtSan
Joselt/citygt ltprovincegtCAlt/provincegt
ltpostalcodegt12345lt/postalcodegt lt/addressgt
18For Example SOAPFault
- ltenvFaultgt
- ltenvCodegt
- ltenvValuegtenvSenderlt/envValuegt
- ltenvSubcodegt
- ltenvValuegtmMessageTimeoutlt/envValuegt
- lt/envSubcodegt
- lt/envCodegt
- ltenvReasongt
- ltenvText xmllang"en"gtSender Timeout
- lt/envTextgt
- lt/envReasongt
19Consider Global Requirements
- Need to consider all of the different
requirements for separate applications with the
same data structure.
20Modify Business Logic for Global Requirements
- De-normalization of processing
- Regulatory
- Cultural
- Business Practices
- Routing
- Etc.
- Routing based on customer profile.
- Routing based on user profile.
- Rule differences based on market.
- and so on.
21Process Execution
- Internationalization affects process execution
- Collation sequences for result sets and queries
- Natural language processing
- Differentiating templates from alternate
content - Processing rules depending on
- Who the user or trading partner is.
- Where the transaction is taking place.
- Tax regime, legal authority, local calendar
- Etc.
- The interplay of all of the above.
- Policy based execution.
22Execution Policies in Service Oriented
Architectures
- How are user preferences propagated?
- Profiles
- Sessions
- Cookies
- Explicitly in each request
- What makes sense?
- The interesting data is usually application
driven. - May need a short-hand and a long-hand version.
23Airplane Reservation
- Things you can select
- Start, destination, seating, meal, reminder
email, route, class, etc. - Things you might prefer
- SFO, IAD, aisle, regular, yes, direct, business,
etc. - Things you might infer from a locale
- Language of the reminder email?
24User Metadata
- Vegetarian, non-smoking, blonde, sports
car-locale - vs.
- en-US
- Maybe users dont have locales either?
- Maybe locales are application specific?
- What does your application do on the Front Door?
25Internationalization Lost in the Fog
- If it doesnt use locales and has all this
personalization stuff and data structuring stuff,
then is it still internationalization? Isnt it
just good development? - Globalization is a fundamental architectural
approach. It is how you think when you are
writing the software. It is not a feature.
(Glen Perkins, Globalization Architect,
Macromedia)
26QA