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

Slides:



Advertisements
Similar presentations
The creation of "Yaolan.com" A Site for Pre-natal and Parenting Education in Chinese by James Caldwell DAE Interactive Marketing a Web Connection Company.
Advertisements

Crucial Patterns in Service- Oriented Architecture Jaroslav Král, Michal Žemlička Charles University, Prague.
Chapter 13 Review Questions
Programming Paradigms and languages
Apache Struts Technology
Roadmap Agenda  iET Process Analyzer 3.0  iET CMDB Intelligence & Discovery 2.1  iET Enterprise 12  iET ITSM 6  iET Mobile ITSM for.
1 Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Oracle Fusion Middleware 11g Abhishek Khanolkar. What is Oracle Fusion? “Oracle Fusion Middleware is a ‘preintegrated’ portfolio of customer- proven software.
SOA Basics SSE USTC Qing Ding. Topics Quick introduction to SOA Composite applications Services and SOA.
Integration of Applications MIS3502: Application Integration and Evaluation Paul Weinberg Adapted from material by Arnold Kurtz, David.
Internationalization of Java Platform Presenter: Ataru Nakazawa Advisor: Xiaoping Jia Date: January 23, 2004.
Component Based Systems Analysis Introduction. Why Components? t Development alternatives: –In-house software –Standard packages –Components 60% of the.
The Architecture of Transaction Processing Systems
SiS Technical Training Development Track Day 10. Agenda  Introduction to Integration Broker  How to Expose and Consume WebServices.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Introduction to Web Applications Instructor: Enoch E. Damson.
Client-Server Processing and Distributed Databases
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Data Integration in Service Oriented Architectures Rahul Patel Sr. Director R & D, BEA Systems Liquid Data – XML-based data access and integration for.
San José, CA – September, 2004 Localizing with XLIFF and ICU Markus Scherer Raghuram (Ram) Viswanadha IBM San.
SOA, BPM, BPEL, jBPM.
Enterprise Systems & Architectures. Enterprise systems are mainly composed of information systems. Business process management mainly deals with information.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Chapter 9 Web Services Architecture and XML. Objectives By study in the chapter, you will be able to: Describe what is the goal of the Web services architecture.
Web Services Glossary Summary of Holger Lausen
Company Confidential 1 This presentation is solely for the use of Patni personnel. No part of it may be circulated, quoted, or reproduced for distribution.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Tech Terminology for non-technical people Tim Bornholtz 2006 Annual Conference.
CIS 451: ASP.NET Objects Dr. Ralph D. Westfall January, 2009.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 26 Internationalization.
(Business) Process Centric Exchanges
MESSAGE ORIENTED MODEL (MOM). Slide 2CITE 4420 Message Oriented Model Message-Oriented Model (MOM)
PBA Front-End Programming Page Composition. Page composition Now we know about – Colors – Fonts, texts and editorial style – Links and navigation – …
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
The XML The XML Company Gary Edmonds Software AG Pty Ltd TBI with XML.
What it is and how it works
Model View Controller MVC Web Software Architecture.
Analyzing Systems Using Data Dictionaries Systems Analysis and Design, 8e Kendall & Kendall 8.
Message Broker
Session 7: JMS, JCA, JSF Dr. Nipat Jongsawat.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
CSE300 EAIusing EJB & XML CSE Enterprise Application Integration Using EJB and XML by Prithwis Sett Mumtaz Lohawala Nayana Paranjape.
10 Copyright © 2004, Oracle. All rights reserved. Building ADF View Components.
Navigation Framework using CF Architecture for a Client-Server Application using the open standards of the Web presented by Kedar Desai Differential Technologies,
Retele de senzori Curs 2 - 1st edition UNIVERSITATEA „ TRANSILVANIA ” DIN BRAŞOV FACULTATEA DE INGINERIE ELECTRICĂ ŞI ŞTIINŢA CALCULATOARELOR.
Apache Struts Technology A MVC Framework for Java Web Applications.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
Information Retrieval in Practice
What is BizTalk ?
The Object-Oriented Thought Process Chapter 13
ORACLE ADF ONLINE TRAINING COURSE
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Server Concepts Dr. Charles W. Kann.
CHAPTER 3 Architectures for Distributed Systems
Systems Analysis and Design With UML 2
CMPE419 Mobile Application Development
Enterprise Application Architecture
Learn how Sage CRM partner add-ons can help you target new customers
Design and Maintenance of Web Applications in J2EE
Pragmatic Event-Driven Microservices
Inventory of Distributed Computing Concepts and Web services
مدیریت فرایندهای کسب و کار و معماری سرویس گرا
Service-centric Software Engineering
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Distributed System Using Java 2 Enterprise Edition (J2EE)
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
CMPE419 Mobile Application Development
Presentation transcript:

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.

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

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.

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.

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

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.

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?

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.

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

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

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

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.

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.

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.

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.

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

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

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

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.

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.

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.

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.

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

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?

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 )

Q&A