Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P."— Presentation transcript:

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

2 What is the presentation about? Internationalization in a service oriented architecture: What are business processes? How do they differ from applications? What are business processes? How do they differ from applications? How do you approach internationalization of a business process? How do you approach internationalization of a business process? Differences between internationalizing GUI and processes. Differences between internationalizing GUI and processes. Data structuring basics Data structuring basics I18N Effects on Processing I18N Effects on Processing

3 What is this presentation about? (drooling version) There is very little information about internationalization of complex enterprise systems. There is very little information about internationalization of complex enterprise systems. So… Internationalization folks dont always have a good understanding of the issues. So… Internationalization folks dont always have a good understanding of the issues. Which leads to wanting locales in the wrong places, misunderstandings with core developers, etc. Which leads to wanting locales in the wrong places, misunderstandings with core developers, etc.

4 Shiny Chrome Chrome, of course, is the shiny metal stuff you most commonly see on automobiles. 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. 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.

5 Model-View-Controller & Internationalization MVC is a traditional software pattern. MVC is a traditional software pattern. In MVC In MVC Models contain the data structures and most of the business logic. Models contain the data structures and most of the business logic. Controllers receive input and decide which actions to take (routing). Controllers receive input and decide which actions to take (routing). Views contain the user interface components (or chrome). Views contain the user interface components (or chrome).

6 Shiny I18N… Internationalization mostly deals with presentation and input problems: Internationalization mostly deals with presentation and 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 model. Common internationalization rarely applies to the model. Middleware, platform and operating environment architects rely on this fact to avoid internationalization. Middleware, platform and operating environment architects rely on this fact to avoid internationalization.

7 And A Good Thing Too… Late localization, formatting, and validation are a good thing. Late localization, formatting, and validation are a good 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… What about that nagging feeling that internationalization also applies to middleware and back-end systems? What about that nagging feeling that internationalization also applies to middleware and back-end systems?

8 Whats a Business Process? Generally, a composite application, rather than a discrete collection of logic: Generally, a composite application, rather than a 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.

9 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 distributed Highly distributed Complex Complex Mutable Mutable

10 Business Processes Business processes have three parts: Business processes have three parts: Tasks" or "steps". Tasks" or "steps"."Clients" "Documents" or "messages"

11 Relating 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 viewers One or more viewers One or more controllers One or more controllers Its own model Its own model Web service orchestration Web service orchestration

12 International 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.)? 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 documents (data structures) to contain the necessary information in the necessary format. Modify your business logic to encapsulate or reflect global business conditions. 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. Intelligently model user preferences, partner profiles, and other metadata to tailor processing and business logic to a specific clients needs.

13 Documents 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 documents SOAP documents Message broker or message queue message (as with JMS or MQ) Message broker or message queue message (as with JMS 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 process operates. Documents form the model on which the business process operates.

14 International 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.

15 Issues with Data Structures Documents and data structures shouldnt include locales. Documents and data structures shouldnt include locales. Basic datatypes are (mostly) locale-neutral. (cf. XML Schema, Java, etc.) 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? If a data structure is composed of locale neutral types, 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 language identifiers for text. Documents may include language identifiers for text. Why do you have text there? Can you do late(r) localization? Why do you have text there? Can you do late(r) localization? Allow multiple resolution. Allow multiple resolution.

16 For Example: Currency <price>123.45</price><price> 123.45 123.45 en-US en-US </price> <price> 123.45 123.45 USD USD </price>

17 For Example: Postal Address <address> 123 Main St. 123 Main St. San Jose San Jose CA CA 12345 12345 en-US en-US </address> <address> US US 123 Main St. 123 Main St. San Jose San Jose CA CA 12345 12345 </address>

18 For Example: SOAPFault <env:Fault> env:Sender env:Sender m:MessageTimeout m:MessageTimeout Sender Timeout Sender Timeout …

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

20 Modify Business Logic for Global Requirements De-normalization of processing De-normalization of processing Regulatory Regulatory Cultural Cultural Business Practices Business Practices Routing Routing 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.

21 Process Execution Internationalization affects process execution: Internationalization affects process execution: Collation sequences for result sets and queries Collation sequences for result sets and queries Natural language processing Natural 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 calendar Tax 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.

22 Execution Policies in Service Oriented Architectures How are user preferences propagated? How are user preferences propagated? Profiles Profiles Sessions Sessions Cookies Cookies Explicitly in each request Explicitly 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.

23 Airplane Reservation Things you can select: Things you can select: Start, destination, seating, meal, reminder email, route, class, etc. Start, destination, seating, meal, reminder email, route, 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?

24 User Metadata Vegetarian, non-smoking, blonde, sports car-locale vs.en-US Maybe users dont have locales either? Maybe users dont 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?

25 Internationalization: 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? 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 ) 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 )

26 Q&A


Download ppt "Beyond the Chrome Building Multi-Lingual and Multi-Locale Business Processes 24 th Internationalization and Unicode Conference Presented by Addison P."

Similar presentations


Ads by Google