Con la llegada de modelos informáticos de negocio basados en Internet, cada vez más las aplicaciones están formadas por clientes y servidores que operan en distintas zonas geográficas.
Estas diferencias introducen los retos siguientes a la tarea de diseñar una infraestructura sólida de cliente-servidor.
Los clientes y servidores pueden residir en sistemas que tienen distintas arquitecturas endian: un cliente puede residir en una CPU little-endian, mientras que el código de servidor se ejecuta en una CPU big-endian. Es posible que un cliente desee llamar a un método empresarial de un servidor que se ejecuta en un conjunto de código distinto del conjunto de código del cliente.
Una infraestructura de cliente-servidor debe definir reglas precisas de seguimiento y conversión de endian y conjuntos de códigos. La plataforma Java ha eliminado prácticamente estos problemas de una forma única: basándose en su máquina virtual Java (JVM), que codifica todos los datos de cadena en formato UCS-2, y externalizándolo todo en formato big-endian. La JVM utiliza un conjunto de programas específicos de la plataforma para interactuar con la plataforma nativa. Estos programas realizan las conversiones de conjunto de códigos necesarias entre UCS-2 y el conjunto de códigos nativo de una plataforma.
Los procesos de cliente y servidor pueden utilizar valores de entorno local distintos. Por ejemplo, un cliente en español puede llamar a un método empresarial de un objeto que reside en un servidor en inglés de Estados Unidos. Algunos métodos empresariales son, por su naturaleza, sensibles al entorno local; supongamos, por ejemplo, que un método empresarial determinado devuelve una lista ordenada de series y que el cliente en español espera que la lista esté ordenada de acuerdo con el orden de clasificación del español, no con el orden de clasificación en inglés del servidor. Puesto que los procedimientos de recuperación y clasificación se ejecutan en el servidor, el entorno local del cliente debe estar disponible para realizar una clasificación legítima.
Una situación parecida ocurre con las instancias en las que el servidor debe devolver series que contienen la fecha, la hora, la moneda, mensajes de excepción, etc., cuyo formato se ha definido de acuerdo con las expectativas culturales del cliente.
Los procesos de cliente y servidor pueden ejecutarse en distintos husos horarios. Hasta la fecha, toda la literatura y los recursos de internacionalización se centran principalmente sobre temas relacionados con el conjunto de códigos y el entorno local. Generalmente han omitido el problema con el uso horario, aun cuando los métodos de empresa puedan ser sensibles tanto al huso horario como al entorno local.
Por ejemplo, supongamos que un proveedor realiza una reclamación para que los pedidos recibidos antes de las 2:00 de la tarde se procesen a las 5:00 de la tarde del mismo día. Evidentemente, las horas indicadas corresponden al huso horario del servidor que procesa el pedido. Es importante conocer el huso horario del sistema cliente para indicar a los clientes de otros husos horarios las horas correctas para el proceso que debe ejecutarse el mismo día.
Otras operaciones que son sensibles al huso horario incluyen la indicación de la hora en los mensajes registrados en un servidor y el acceso a archivos o recursos de la base de datos. El concepto de la hora de verano complica todavía más el problema de los husos horarios.
J2EE (Java 2 Platform, Enterprise Edition) proporciona soporte para los componentes de aplicación que se ejecutan en sistemas que tienen una arquitectura endian y conjuntos de códigos distintos. No proporciona soporte dedicado para componentes de aplicación que se ejecutan en sistemas que tienen entornos locales o husos horarios distintos.
El servicio de internacionalización da respuesta a los retos presentados por la discrepancia del entorno local y el huso horario sin incurrir en las limitaciones de técnicas convencionales. El servicio gestiona automáticamente la distribución de contextos de internacionalización entre distintos componentes de aplicaciones EJB, incluidas las aplicaciones cliente, los enterprise beans y los servlets. Para obtener más información, consulte el centro de información de WebSphere Application Server Network Deployment.