US20030093465A1 - Management strategies for internationalization in a distributed computer environment - Google Patents
Management strategies for internationalization in a distributed computer environment Download PDFInfo
- Publication number
- US20030093465A1 US20030093465A1 US10/000,686 US68601A US2003093465A1 US 20030093465 A1 US20030093465 A1 US 20030093465A1 US 68601 A US68601 A US 68601A US 2003093465 A1 US2003093465 A1 US 2003093465A1
- Authority
- US
- United States
- Prior art keywords
- context
- internationalization
- identifier
- request
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 claims abstract description 91
- 230000008569 process Effects 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000000644 propagated effect Effects 0.000 abstract description 5
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 10
- 235000014552 Cassia tora Nutrition 0.000 description 10
- 244000201986 Cassia tora Species 0.000 description 10
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 8
- 244000046052 Phaseolus vulgaris Species 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 235000007119 Ananas comosus Nutrition 0.000 description 1
- 244000099147 Ananas comosus Species 0.000 description 1
- 238000003619 Marshal aromatic alkylation reaction Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Definitions
- the present invention relates to a distributed computer enterprise and more particularly to a system and method for managing locale and time zone sensitive operations within the distributed computer enterprise.
- one such management framework consists of a server that manages a number of nodes, each of which has a local object database that stores object data specific to the local node.
- Each managed node typically includes a management framework, comprising a number of management routines that is capable of a relatively large number of simultaneous network connections to remote machines.
- the framework manages hundreds of megabytes of local storage and can spawn many dozens of simultaneous processes to handle requests from local or remote users.
- FIG. 1 illustrates one example of the results from a conventional request made by a user/client on a server.
- a Spanish client 102 has invoked a locale-sensitive request on an American server 104 .
- the server In the conventional distributed computer environment, the server always imposes its locale upon the client. Consequently, the Spanish client will receive results in the format and time zone of the American locale and not in the desired Spanish locale.
- the desired result 106 of the Spanish client 102 was dramatically different from the actual result 108 returned by the American server 104 .
- the server has translated the day and month from Spanish to the English language and has also changed the day/date format to an American format.
- the American server changed the Spanish currency format by substituting commas for periods.
- the American server disregarded the accent “ ⁇ ” over the “n” in the Spanish word pi ⁇ a. This resulted in the American server providing an incorrect sorted list.
- a conventional method for solving this problem is to add an extra parameter to all locale and time zone sensitive requests sent to the server.
- the parameter-addition solution though outwardly simple, is intrusive, error prone and has serious limitations in real-life enterprise environments. For already deployed distributed applications, it is not possible to change interfaces for the introduction of extra parameters without incurring substantial network management overhead. Further, some protocols/languages will not support an extra parameter. For example, structured query language (SQL) queries do not have a placeholder to accommodate locale or time zone information.
- SQL structured query language
- a business method request is any method request such as a database search, banking transaction, stock transaction, or the like processed at a server.
- the business method request would then be processed using the client's internationalization context. While this solution may be suitable for many J2EE (Java 2 Enterprise Edition) or CORBA (Component Object Resource Broker Architecture) implementations, some server-side components may want to exercise greater control over the internationalization context.
- J2EE Java 2 Enterprise Edition
- CORBA Component Object Resource Broker Architecture
- Embodiments of the present invention generally provide an article of manufacture, method and system for processing remote client requests in a distributed computer network using the client's specified time zone and locale conventions.
- a server computer in a distributed computing environment having a plurality of nodes across geographically dispersed boundaries contains an internationalization process.
- the internationalization process when executed by a processor of the server computer, processes requests from a client computer according to an internationalization context provided by the client and configured by an internationalization management policy.
- a server computer receives a first request from a remote client computer.
- the server computer receives a second request from the client computer wherein the second request comprises an internationalization context comprising the client's preferred conventions for processing the first request.
- the server computer retrieves an internationalization management policy and configures the internationalization context according to the management policy.
- the server computer then processes the first request according to the configured internationalization context.
- a server computer in a distributed computing environment receives an internationalization context from a client computer.
- the server then processes further requests from the client computer according to the internationalization context that is configured by an internationalization management policy.
- FIG. 1 illustrates an example of the results from a conventional method request made by a user/client on a remote server.
- FIG. 2 illustrates a simplified diagram showing a large distributed computing enterprise environment.
- FIG. 3A illustrates a block diagram of a system management framework.
- FIG. 3B illustrates a block diagram of the elements in a computer component of the system management framework.
- FIG. 4 illustrates a small implementation of the distributed computing enterprise environment.
- FIG. 5 illustrates the propagation of internationalization context from a client to remote servers according to an internationalization management policy.
- FIGS. 6A and 6B illustrate one embodiment of the internationalization context data structure.
- FIG. 7 illustrates a flowchart of the method at the client computer.
- FIG. 8 illustrates a flowchart of the method at the server computer.
- the present embodiments provide an article of manufacture, a method and a system for processing client requests in a distributed computer network using the user's specified locale conventions.
- a client sends a business method request along with associated internationalization context to a remote server.
- the internationalization context comprises client locale specific information comprising preferred location and time zone information used in processing the associated business method request.
- the internationalization context is composed according to an internationalization context management policy.
- the application server extracts the internationalization context associated with and obtains the internationalization context management policy assigned to the incoming business method request.
- the server-side application then processes the associated business method request according to the internationalization context and the internationalization context management policy.
- the server forwards the client's business method request to a second server and propagates the internationalization context to the second server.
- FIG. 2 illustrates one embodiment of a large distributed computer environment 200 , also referred to as the managed environment, comprising up to thousands of “nodes”.
- the nodes will typically be geographically dispersed and the overall environment is “managed” in a distributed manner.
- the managed environment (ME) 200 is logically broken down into a series of loosely-connected managed regions (MR) 212 , each with its own management server 214 for managing local resources with the MR.
- the network typically will include other servers (not shown) for carrying out other distributed network functions. These include name servers, security servers, file servers, thread servers and the like.
- Multiple servers 214 coordinate activities across the enterprise and permit remote management and operation.
- Each server 214 serves a number of gateway machines 216 , each of which in turn support a plurality of endpoint machines 218 .
- the server 214 coordinates all activity within the MR using terminal node manager 210 .
- FIG. 3A illustrates each gateway machine 216 that runs a server component 320 of a system management framework.
- the server component 320 is a multi-threaded runtime process that comprises several components: an object request broker (ORB) 310 , an authorization service 330 , object location service 350 and basic object adapter (BOA) 370 .
- Server component 320 also includes an object library 390 .
- the ORB 310 runs continuously, separate from the operating system and it communicates with both server and client processes through separate stubs and skeletons via an inter-process communication (IPC) facility 219 .
- IPC inter-process communication
- PRC secure remote procedure call
- Gateway machine 216 also includes a thread mechanism 217 .
- the thread mechanism 217 is known in the art and assigns a thread identifier to each request made by a user at a gateway machine 216 .
- the thread identifier may be any alphanumeric representation.
- the thread identifier is associated with the request so that the server can track the request and send a response to the proper gateway machine 216 .
- the system management framework includes a client component 340 supported on each of the endpoint machines 218 .
- the client component 340 is a low cost, low maintenance application suite that is preferably “data-less” in the sense that system management data is not cached or stored there in a persistent manner.
- Implementation of the management framework in this “client-server” manner has significant advantages over the prior art, and it facilitates the connectivity of personal computers into the managed environment.
- the system management framework facilitates execution of system management tasks required to manage the resources in the MR.
- a server per MR there is one server per MR with some number of gateways.
- a workgroup-size installation 400 (a local area network, for example) such as illustrated in FIG. 4, a single server class machine 402 may be used as the server and gateway to a plurality of terminal nodes 404 .
- References herein to a distinct server and one or more gateway(s) should thus not be taken by way of limitation as these elements may be combined into a single platform.
- the MR grows with additional gateways then being used to balance the load of the endpoints.
- the server 214 is the top-level authority over all gateway and endpoints.
- the server maintains an endpoint list, which keeps track of every endpoint in a managed region. This list preferably contains all information necessary to uniquely identify and manage endpoints including, without limitation, such information as name, location, and machine type.
- the server also maintains the mapping between endpoints and gateways, and this mapping is preferably dynamic.
- a gateway is a fully managed node that has been configured to operate as a gateway. Initially, a gateway “knows” nothing about endpoints. As endpoints log-in, the gateway builds an endpoint list for its endpoints. The gateway's duties preferably include listening for endpoint login requests, listening for endpoint update requests, and acting as a gateway for method invocations on endpoints.
- the endpoint is a machine running the system management framework client component, which is referred to herein as a management agent.
- the management agent has two main parts, the daemon 340 a and application runtime library 340 b , as illustrated in FIG. 3B.
- the daemon 340 a is responsible for endpoint login and for spawning application endpoint executables. Once an executable is spawned, the daemon 340 a has no further interaction with it. Each executable is linked with the application runtime library 340 b , which handles all further communication with the gateway.
- the server and each of the gateways are a computer or “machine”.
- each computer may be a RISC (reduced instruction set computer) System/6000® running AIX (Advanced Interactive Executive) operating system.
- RISC reduced instruction set computer
- AIX Advanced Interactive Executive
- Suitable alternative machines include an IBM-compatible PC running Novell UnixWare or an AT&T 3000 series machine running AT&T UNIX.
- Other machines and/or operating systems may be used for the gateway and server machines.
- Each endpoint is also a computer.
- the endpoints are personal computers such as desktop machines, laptops, hand-held personal digital assistants (PDA) or the like.
- the endpoints need not be high powered or complex machines or workstations.
- one or more of the endpoints may be a notebook computer, for example, the IBM ThinkPad® machine, some other Intel x86 or Pentium®-based computer running the Windows operating system or IBM-compatible machines running under the OS/2® operating system.
- An endpoint computer preferably includes an Internet client navigation program such as Netscape Navigator or Microsoft Internet Explorer.
- An endpoint computer thus may be connected to a gateway via the Internet, an Intranet or some other computer network.
- the connection to a gateway may be wireless using radio frequency energy, visible or non-visible light emissions or through a hard-wire link.
- FIG. 2 is merely illustrative.
- the particular arrangement and devices of the network environment are not so limited. More generally, any distributed system may used to advantage.
- signal bearing media include, but are not limited to, recordable type media such as volatile and nonvolatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., CD-ROMs, DVDs, etc.), and transmission type media such as digital and analog communication links.
- Transmission type media include information conveyed to a computer by a communications medium, such as through a computer or telephone network, and includes wireless communications.
- a communications medium such as through a computer or telephone network
- wireless communications includes wireless communications.
- the latter embodiment specifically includes information downloaded from the Internet and other networks.
- Such signal-bearing media when carrying computer-readable instructions that direct the functions of the present invention, represent embodiments of the present invention.
- a computer system operative in the managed environment provides declarative policies for managing internationalization context comprising locale and time zone information.
- the management policies may be specified in XML (Extensive Markup Language) that is read and parsed by a J2EE or CORBA deployment of the internationalization context.
- XML is a specification designed for Internet Web documents that allows the definition, transmission, validation, and interpretation of data between application components.
- J2EE and CORBA application components are hosted in containers.
- a container is the architected element within an application server that manages the lifecycle of and provides the runtime environment for application components.
- Containers for J2EE (as published by Sun Microsystems) and CORBA (as published by the Object Management Group) manages the lifecycle and provides the runtime environment for application components.
- a client computer propagates to a server caller internationalization context (CIC) comprising client preferred locale and time zone information of the client application component.
- the computer servicing the request (a server computer for example) will extract the CIC associated with the incoming request.
- the computer will then determine the requested business method implementation and the associated internationalization context management policy from the container hosting the application component. It may further obtain associated internationalization context elements from the container, also specified using XML, if required by the management policy.
- the computer will then compose an invocation internationalization context (IIC) according to the management policy by using internationalization elements derived by the caller, the local process, or the container.
- the IIC is the locale and time zone information under which the requested business method is processed.
- the computer associates the CIC and the IIC to the thread that will execute the business method request and then dispatches the request. Once dispatched, the CIC and IIC are obtained so that the method implementation can use them to localize processing of the request.
- invocation internationalization context policies may be application-managed internationalization, bean managed internationalization and container managed internationalization. These policies are discussed in detail below.
- an application can access locale and time zone information of the invocation internationalization context using the appropriate application-programming interface (API).
- API application-programming interface
- the Application Managed Internationalization policy directs the container to transfer control for managing invocation internationalization context to the application developer. For J2EE and CORBA Java application clients, this is the only applicable internationalization context management policy.
- the AMI policy may be applied to application components deployable within the J2EE Web and Client containers.
- a Web container is the architected element of a J2EE-compliant application server that manages the lifecycle of and provides the runtime environment for Web-based Java application components. This includes Java Servlets and Java Server Pages (JSP).
- JSP Java Server Pages
- a Client container manages the lifecycle of and provides the runtime environment for J2EE Java application clients. The J2EE Java application clients are essentially non-managed and require minor support from their container.
- CORBA application servant objects also may operate under the AMI policy.
- XML descriptors are used to convey the AMI context management policy to the container when deploying such application components.
- the Web container When servicing a Servlet or JSP business method, the Web container will supply the AMI policy descriptor. When servicing a client request, the Client container assumes the AMI policy. In the event that a business method running under the AMI policy issues a subsequent business method request and did not set an invocation internationalization context element via the API, the servicing computer will propagate the element derived from the local process along with the request.
- BMI is applicable only to Enterprise JavaBeans known in the art.
- the policies of BMI are identical to that of AMI described above.
- An Enterprise JavaBean is a distributed object model for Java server-side application components that are deployed within and exercised by J2EE-compliant application servers. There are three main types of Enterprise JavaBeans. Those are session beans, entity beans, and message-driven beans. Enterprise JavaBean implementations will primarily provide business logic and database access functions within a J2EE application. The BMI context management policy may be applied to all types of Enterprise JavaBeans.
- an application's Enterprise JavaBeans are loaded into an EJB Container.
- the EJB container is the architected element of a J2EE-compliant application server that manages the lifecycle of and provides the runtime environment for an Enterprise JavaBeans.
- XML descriptors are used to specify the BMI context management policy to the container.
- the EJB container When servicing an Enterprise JavaBean business method, the EJB container will provide the associated BMI policy descriptor.
- the servicing computer will propagate the element derived from the local process along with the request.
- CMI Container Managed Internationalization
- CMI is the preferred management policy for server-side components.
- the various application component containers assume the responsibility of managing the invocation internationalization context.
- CMI policy can be RunAsCaller, RunAsServer or RunAsSpecified.
- the invocation internationalization context comprises the locale and time zone information associated with the inbound call.
- the invocation internationalization context comprises the locale and time zone information of the server process.
- the locale and time zone information is specified in the XML deployment descriptor of the application component.
- a business method will get executed under the locale and time zone specified in the deployment descriptor.
- the servicing computer will propagate the element derived from the local process along with the request.
- deployment descriptors illustratively written in XML, provide the mechanism for declaratively managing internationalization context within applications at the time of deployment.
- XML examples that follow describe the management of internationalization context within J2EE application components
- CORBA application components may also be deployed using similar XML schemes.
- Java formalisms other programming methods are equally applicable.
- a Servlet or JSP can be deployed in a J2EE Web application with an ‘internationalization-type’ element.
- the internationalization-type element specifies a server-side Web component's internationalization type.
- the internationalization type element may be either “Application” ( ⁇ internationalization type>Application ⁇ /internationalization type>) or “Container” ( ⁇ internationalization type>Container ⁇ /internationalization type>).
- the default internationalization type element is “Container”.
- an EJB can be deployed in a J2EE application in a similar manner to that of a Servlet or JSP described above.
- the internationalization-type element can be either “Bean” or “Container”.
- the internationalization-attribute element specifying the value of the internationalization context that is associated to an invoked business method.
- the internationalization-attribute element may be RunAsCaller, RunAsServer or RunAsSpecified. The default is RunAsCaller for session and entity beans. For message-driven beans, the default is RunAsServer
- the locale element specifies the locale under which a server-side web component or the business method of an Enterprise JavaBean will execute.
- the first element may be a one or two letter ISO-639 language code.
- the second element may be a two-letter ISO-3166 country code.
- the third element if present, may indicate a variance where for example, a country code can be specified to be empty.
- the presence of a variant element mandates the presence of a non-empty country element.
- the time zone element specifies the time zone under which a server-side web component or the business method of an EJB will execute.
- the value of a time zone element is any valid time zone identification contained in the Java Software Development Kit (SDK).
- SDK Java Software Development Kit
- FIG. 5 shows a network environment illustrating the propagation of the internationalization context 506 from a client request to a remote server and then to another server and a back-end data store.
- the client 502 is located in a French locale and CET (Central European Time) time zone.
- the invocation internationalization context 506 comprising the client's locale and time-zone information, is transmitted separately from the called method function m1( . . . ).
- the server 510 deployed as RunAsCaller CMI, in the Japan locale and JST (Japanese standard time) time zone
- the server 510 Upon receiving the client request at the server 510 , deployed as RunAsCaller CMI, in the Japan locale and JST (Japanese standard time) time zone, the server 510 will extract the client's internationalization context and, according to the context management policy, provide the client's internationalization context to request.
- RunAsCaller CMI in the Japan locale and JST (Japanese standard time) time zone
- server 512 deployed as RunAsSpecified, located in the Great Britain locale and GMT (Greenwich Mean Time) time zone. Since the deployment of server 512 is RunAsSpecified, the server 512 creates an invocation internationalization context 508 comprising the deployment specified English locale and EST (eastern standard time) time zone when further servicing the request at the back-end data store 514 through a J2EE connector.
- FIG. 6A illustrates one embodiment of the internationalization context data structure 600 .
- the internationalization context data structure 600 comprises an ordered array of locales 610 and a time-zone identifier 612 .
- the ordered array of locales is a sequential list of preferred locales for processing the client request. Illustratively, the most preferred locale will be selected for the client locale.
- FIG. 6B further illustrates the data structure for a locale entry 602 contained in the ordered array of locales 610 .
- the locale entry 602 comprises a language code 614 , a country code 616 and a variant-string 618 .
- the language code 614 may be a two character ISO-639 standard identifier.
- the country code 616 may be a two character ISO-3166 standard identifier.
- the variant-string 618 may contain further locale sensitive information such as currency formatting data or specifying a region within a country, for example.
- further locale sensitive information such as currency formatting data or specifying a region within a country, for example.
- the foregoing illustrated example of the internationalization context data structure 600 is merely representative. It should be appreciated that other logical combinations of locale specific information may be contained in the internationalization context data structure 600 .
- the internationalization context 610 and the time zone identifier 612 may be spread over a plurality of data structures and cross referenced by pointers.
- the internationalization context 600 may be implemented as a service context, processed by the ORB 210 (see FIG. 2) within CORBA (common object request broker architecture).
- CORBA is an architecture that enables application components, called objects, to communicate with one another regardless of what programming language they were written in or what operating system they are running on.
- CORBA common object request broker architecture
- SOM is a programming architecture developed by IBM that allows binary code to be shared by different applications.
- DSOM is a version of SOM that supports sharing binary objects across networks.
- FIG. 7 illustrates a flowchart implementing management of the internationalization context at a client side.
- the routine begins at step 702 whenever the client application component invokes a remote business method.
- the client application component invokes a remote business method.
- all element areas are created and initialized.
- the invocation context associated with the current thread is obtained and its elements are copied into the PC.
- the invocation context comprises locale and time zone information and context management policies.
- the routine queries if the locale information in the internationalization context is set to null data. If so, the routine places the locale information from the default setting of the client computer and places it in the internationalization context at step 708 and proceeds to step 710 . If the internationalization context is not set to null data, the routine, at step 710 , queries if the time zone information is set to null data. If so, the routine attempts to extract the time zone information from the current process environment at step 712 and proceeds to step 714 .
- the routine queries if the time zone information was successfully extracted from the current process environment. If so, the routine proceeds to step 716 where the time zone is set to the extracted time zone. If not, the routine proceeds to step 718 where the time zone is set to Greenwich Mean Time (GMT). The routine then proceeds to step 720 .
- GTT Greenwich Mean Time
- step 720 the information contained in the internationalization context is converted into serialized form and then placed with the outgoing RMI-IIOP request at step 722 .
- the routine then proceeds to step 724 where the request is marshaled to the server.
- FIG. 8 illustrates a flowchart for computing the internationalization context 600 propagated to a server computer.
- the routine begins at step 802 where the ORB 310 de-marshals the incoming RMI-IIOP request.
- the routine queries if the request contains serialized internationalization context. If so, the propagated internationalization context (PC) is extracted from the request at step 806 . If the request does not contain the internationalization context, the routine, at step 810 , sets the locale and time zone information is set to null. The routine then proceeds to step 808 where the serialized internationalization context is placed in de-serialized form.
- PC propagated internationalization context
- a caller internationalization context (CIC) is created and its elements are initialized to the locale and time zone of the propagated context (PC).
- the routine queries if the locale information in the caller internationalization context is set to null. If so, the routine proceeds to step 816 where the default locale of the server is extracted and assigned as the locale for processing the request. If the locale information is not set to null, the routine, at step 818 , queries if the time zone information of the CIC is set to null. If so, the routine, at step 820 , attempts to extract the time zone information from the current process environment. At step 822 , the routine queries if the time zone information was successfully extracted. If not, the routine, at step 826 , assigns GMT time as the time zone for the internationalization context. If so, the successfully extracted time zone information is assigned as the time zone of the internationalization context at step 824 .
- the routine obtains the context management policy from the container.
- the routine creates an invocation internationalization context (IIC) with its elements initialized to null.
- the routine queries if the management policy is AMI.
- the routine queries if the management policy is BMI. If the management policy is either AMI or BMI, the routine proceeds to step 850 where the IIC elements are left at null. If the management policy is neither AMI nor BMI, the routine proceeds to step 836 where the routine queries if the management policy is CMI RunAsCaller. If so, the routine assigns the IIC elements to be those of the CIC.
- step 852 the CIC and IIC are associated with the current thread making both available to the current process. If the management policy is not CMI RunAsCaller, the routine queries, at step 838 if the management policy is CMI RunAsSpecified. If so, the IIC elements are assigned to be those specified in the context management policy descriptor at step 846 . The routine then proceeds to step 852 . If not, the method queries if the management policy is CMI RunAsServer. If so, the IIC elements as assigned to be those of the current server process. The routine then proceeds to step 852 . If not, the routine proceeds to step 850 .
- the present embodiments provide for transmitting and managing internationalization information.
- Receiving machines e.g., servers
- the application may then use the internationalization information in preparing a response to a client or in order to perform processing in general.
- the internationalization information may be used to format a response according user preferences.
- the internationalization information may provide rules or conditions for calculations (e.g., preparing tax returns, e-Commerce transactions, etc.). In this manner, the present embodiments ensure meaningful network transactions that are sensitive to international diversity.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
A method and system for managing client locale information to a server in a distributed computer enterprise. When a client generates a request to a remote server, the client's international context (e.g., locale and time zone information) is associated with the request. The server then retrieves an internationalization management policy and processes requests from the client according to the internationalization context that is configured by the internationalization context management policy. The internationalization context is propagated to successive servers that further service the client's request.
Description
- 1. Field of the Invention
- The present invention relates to a distributed computer enterprise and more particularly to a system and method for managing locale and time zone sensitive operations within the distributed computer enterprise.
- 2. Description of the Related Art
- Large organizations now desire to place all of their computing resources on a computer network. To this end, it is known to connect computers in a large, geographically dispersed network environment and to manage such an environment in a distributed manner. Illustratively, one such management framework consists of a server that manages a number of nodes, each of which has a local object database that stores object data specific to the local node. Each managed node typically includes a management framework, comprising a number of management routines that is capable of a relatively large number of simultaneous network connections to remote machines. The framework manages hundreds of megabytes of local storage and can spawn many dozens of simultaneous processes to handle requests from local or remote users.
- In a conventional distributed computer environment it is often assumed that a server and its clients are operating in the same locale and or time zone. This assumption no longer holds true for e-business and web applications. Managed nodes are often located across national boundaries. Thus, a typical managed network of the type described above may include offices located in numerous countries. Due to the worldwide acceptance of the Internet, a server is now more likely than ever to be physically located across a time zone. It is also likely that the client will make a request that requires using cultural formatting conventions that are different from those of the server's locale. Conventionally, when a server processes a request from a client, the server will treat the request as if it occurred in the locale of the server. Without regard to the locale of the client, the server will impose its own local conventions when generating the results from the request. The client then receives the results of the request in a format that is unfamiliar to the user.
- FIG. 1 illustrates one example of the results from a conventional request made by a user/client on a server. In this example, a
Spanish client 102 has invoked a locale-sensitive request on anAmerican server 104. In the conventional distributed computer environment, the server always imposes its locale upon the client. Consequently, the Spanish client will receive results in the format and time zone of the American locale and not in the desired Spanish locale. As shown, the desiredresult 106 of theSpanish client 102 was dramatically different from theactual result 108 returned by theAmerican server 104. In the actual result, the server has translated the day and month from Spanish to the English language and has also changed the day/date format to an American format. The American server changed the Spanish currency format by substituting commas for periods. And finally, the American server disregarded the accent “˜” over the “n” in the Spanish word piña. This resulted in the American server providing an incorrect sorted list. - A conventional method for solving this problem is to add an extra parameter to all locale and time zone sensitive requests sent to the server. The parameter-addition solution, though outwardly simple, is intrusive, error prone and has serious limitations in real-life enterprise environments. For already deployed distributed applications, it is not possible to change interfaces for the introduction of extra parameters without incurring substantial network management overhead. Further, some protocols/languages will not support an extra parameter. For example, structured query language (SQL) queries do not have a placeholder to accommodate locale or time zone information.
- Another possible solution would be a method that associates a client's internationalization context comprising client locale and time zone information with every business method request. A business method request is any method request such as a database search, banking transaction, stock transaction, or the like processed at a server. The business method request would then be processed using the client's internationalization context. While this solution may be suitable for many J2EE (Java 2 Enterprise Edition) or CORBA (Component Object Resource Broker Architecture) implementations, some server-side components may want to exercise greater control over the internationalization context.
- For certain components there is a need to execute under an internationalization context which potentially can be different from the client or caller's internationalization context. Certain database applications may want to always issue SQL queries in a fixed locale. For example, the SQL query, “SELECT cust_name FROM cust_table where cust_name <=‘N’, will not return any string starting with “Ñ” if it is executed within a Spanish locale. Although it may be possible to alter the internationalization context programmatically, this is not the most desirable approach. Any programmatic alteration of the internationalization context is considered to be a hard-wire fixed approach. If a different internationalization context is ever desired, the application component may need to be re-programmed.
- Therefore, there is a need for a method and system for controlling the contents of internationalization context without requiring programmatic manipulation.
- Embodiments of the present invention generally provide an article of manufacture, method and system for processing remote client requests in a distributed computer network using the client's specified time zone and locale conventions. In one embodiment, a server computer in a distributed computing environment, having a plurality of nodes across geographically dispersed boundaries contains an internationalization process. The internationalization process, when executed by a processor of the server computer, processes requests from a client computer according to an internationalization context provided by the client and configured by an internationalization management policy.
- In another embodiment, a server computer receives a first request from a remote client computer. Illustratively, the server computer then receives a second request from the client computer wherein the second request comprises an internationalization context comprising the client's preferred conventions for processing the first request. The server computer retrieves an internationalization management policy and configures the internationalization context according to the management policy. The server computer then processes the first request according to the configured internationalization context.
- In still another embodiment, a server computer in a distributed computing environment receives an internationalization context from a client computer. The server then processes further requests from the client computer according to the internationalization context that is configured by an internationalization management policy.
- So that the manner in which the above recited features, advantages and objects of the present invention are attained and can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to the embodiments thereof which are illustrated in the appended drawings.
- It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
- FIG. 1 illustrates an example of the results from a conventional method request made by a user/client on a remote server.
- FIG. 2 illustrates a simplified diagram showing a large distributed computing enterprise environment.
- FIG. 3A illustrates a block diagram of a system management framework.
- FIG. 3B illustrates a block diagram of the elements in a computer component of the system management framework.
- FIG. 4 illustrates a small implementation of the distributed computing enterprise environment.
- FIG. 5 illustrates the propagation of internationalization context from a client to remote servers according to an internationalization management policy.
- FIGS. 6A and 6B illustrate one embodiment of the internationalization context data structure.
- FIG. 7 illustrates a flowchart of the method at the client computer.
- FIG. 8 illustrates a flowchart of the method at the server computer.
- The present embodiments provide an article of manufacture, a method and a system for processing client requests in a distributed computer network using the user's specified locale conventions. In one embodiment, a client sends a business method request along with associated internationalization context to a remote server. The internationalization context comprises client locale specific information comprising preferred location and time zone information used in processing the associated business method request. The internationalization context is composed according to an internationalization context management policy. The application server extracts the internationalization context associated with and obtains the internationalization context management policy assigned to the incoming business method request. The server-side application then processes the associated business method request according to the internationalization context and the internationalization context management policy. In another embodiment, the server forwards the client's business method request to a second server and propagates the internationalization context to the second server.
- FIG. 2 illustrates one embodiment of a large distributed
computer environment 200, also referred to as the managed environment, comprising up to thousands of “nodes”. The nodes will typically be geographically dispersed and the overall environment is “managed” in a distributed manner. Preferably, the managed environment (ME) 200 is logically broken down into a series of loosely-connected managed regions (MR) 212, each with itsown management server 214 for managing local resources with the MR. The network typically will include other servers (not shown) for carrying out other distributed network functions. These include name servers, security servers, file servers, thread servers and the like.Multiple servers 214 coordinate activities across the enterprise and permit remote management and operation. Eachserver 214 serves a number ofgateway machines 216, each of which in turn support a plurality ofendpoint machines 218. Theserver 214 coordinates all activity within the MR usingterminal node manager 210. - FIG. 3A illustrates each
gateway machine 216 that runs a server component 320 of a system management framework. The server component 320 is a multi-threaded runtime process that comprises several components: an object request broker (ORB) 310, anauthorization service 330,object location service 350 and basic object adapter (BOA) 370. Server component 320 also includes anobject library 390. Preferably, theORB 310 runs continuously, separate from the operating system and it communicates with both server and client processes through separate stubs and skeletons via an inter-process communication (IPC)facility 219. In particular, a secure remote procedure call (PRC) is used to invoke operations on remote objects.Gateway machine 216 also includes athread mechanism 217. Thethread mechanism 217 is known in the art and assigns a thread identifier to each request made by a user at agateway machine 216. The thread identifier may be any alphanumeric representation. The thread identifier is associated with the request so that the server can track the request and send a response to theproper gateway machine 216. - The system management framework includes a
client component 340 supported on each of theendpoint machines 218. Theclient component 340 is a low cost, low maintenance application suite that is preferably “data-less” in the sense that system management data is not cached or stored there in a persistent manner. Implementation of the management framework in this “client-server” manner has significant advantages over the prior art, and it facilitates the connectivity of personal computers into the managed environment. Using an object-orientated approach, the system management framework facilitates execution of system management tasks required to manage the resources in the MR. - In a large computer enterprise such as illustrated in FIG. 2, preferably there is one server per MR with some number of gateways. For a workgroup-size installation400 (a local area network, for example) such as illustrated in FIG. 4, a single
server class machine 402 may be used as the server and gateway to a plurality ofterminal nodes 404. References herein to a distinct server and one or more gateway(s) should thus not be taken by way of limitation as these elements may be combined into a single platform. For intermediate size installations, the MR grows with additional gateways then being used to balance the load of the endpoints. - The
server 214 is the top-level authority over all gateway and endpoints. The server maintains an endpoint list, which keeps track of every endpoint in a managed region. This list preferably contains all information necessary to uniquely identify and manage endpoints including, without limitation, such information as name, location, and machine type. The server also maintains the mapping between endpoints and gateways, and this mapping is preferably dynamic. - Illustratively, there are one or more gateways per managed region. Preferably, a gateway is a fully managed node that has been configured to operate as a gateway. Initially, a gateway “knows” nothing about endpoints. As endpoints log-in, the gateway builds an endpoint list for its endpoints. The gateway's duties preferably include listening for endpoint login requests, listening for endpoint update requests, and acting as a gateway for method invocations on endpoints.
- The endpoint is a machine running the system management framework client component, which is referred to herein as a management agent. The management agent has two main parts, the daemon340 a and application runtime library 340 b, as illustrated in FIG. 3B. The daemon 340 a is responsible for endpoint login and for spawning application endpoint executables. Once an executable is spawned, the daemon 340 a has no further interaction with it. Each executable is linked with the application runtime library 340 b, which handles all further communication with the gateway.
- Preferably, the server and each of the gateways are a computer or “machine”. As an illustration, each computer may be a RISC (reduced instruction set computer) System/6000® running AIX (Advanced Interactive Executive) operating system. Suitable alternative machines include an IBM-compatible PC running Novell UnixWare or an AT&T 3000 series machine running AT&T UNIX. Other machines and/or operating systems may be used for the gateway and server machines.
- Each endpoint is also a computer. In one embodiment, the endpoints are personal computers such as desktop machines, laptops, hand-held personal digital assistants (PDA) or the like. The endpoints need not be high powered or complex machines or workstations. Illustratively, one or more of the endpoints may be a notebook computer, for example, the IBM ThinkPad® machine, some other Intel x86 or Pentium®-based computer running the Windows operating system or IBM-compatible machines running under the OS/2® operating system. An endpoint computer preferably includes an Internet client navigation program such as Netscape Navigator or Microsoft Internet Explorer. An endpoint computer thus may be connected to a gateway via the Internet, an Intranet or some other computer network. The connection to a gateway may be wireless using radio frequency energy, visible or non-visible light emissions or through a hard-wire link.
- It should be understood that the network environment of FIG. 2 is merely illustrative. The particular arrangement and devices of the network environment are not so limited. More generally, any distributed system may used to advantage.
- Moreover, while the embodiments have and hereinafter will be described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various embodiments of the invention are capable of being distributed as a program product in a variety of forms, and that embodiments of the invention apply equally regardless of the particular type of signal bearing media used to actually carry out the distribution. Examples of signal bearing media include, but are not limited to, recordable type media such as volatile and nonvolatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., CD-ROMs, DVDs, etc.), and transmission type media such as digital and analog communication links. Transmission type media include information conveyed to a computer by a communications medium, such as through a computer or telephone network, and includes wireless communications. The latter embodiment specifically includes information downloaded from the Internet and other networks. Such signal-bearing media, when carrying computer-readable instructions that direct the functions of the present invention, represent embodiments of the present invention.
- In one embodiment, a computer system operative in the managed environment provides declarative policies for managing internationalization context comprising locale and time zone information. Illustratively, the management policies may be specified in XML (Extensive Markup Language) that is read and parsed by a J2EE or CORBA deployment of the internationalization context. XML is a specification designed for Internet Web documents that allows the definition, transmission, validation, and interpretation of data between application components.
- As an illustration, all J2EE and CORBA application components are hosted in containers. A container is the architected element within an application server that manages the lifecycle of and provides the runtime environment for application components. Containers for J2EE (as published by Sun Microsystems) and CORBA (as published by the Object Management Group) manages the lifecycle and provides the runtime environment for application components.
- With each business method dispatch, a client computer propagates to a server caller internationalization context (CIC) comprising client preferred locale and time zone information of the client application component. The computer servicing the request (a server computer for example) will extract the CIC associated with the incoming request. Using XML, the computer will then determine the requested business method implementation and the associated internationalization context management policy from the container hosting the application component. It may further obtain associated internationalization context elements from the container, also specified using XML, if required by the management policy. The computer will then compose an invocation internationalization context (IIC) according to the management policy by using internationalization elements derived by the caller, the local process, or the container. The IIC is the locale and time zone information under which the requested business method is processed. The computer associates the CIC and the IIC to the thread that will execute the business method request and then dispatches the request. Once dispatched, the CIC and IIC are obtained so that the method implementation can use them to localize processing of the request.
- As an illustration, invocation internationalization context policies may be application-managed internationalization, bean managed internationalization and container managed internationalization. These policies are discussed in detail below.
- Application Managed Internationalization (AMI)
- Illustratively, an application can access locale and time zone information of the invocation internationalization context using the appropriate application-programming interface (API). The Application Managed Internationalization policy directs the container to transfer control for managing invocation internationalization context to the application developer. For J2EE and CORBA Java application clients, this is the only applicable internationalization context management policy.
- The AMI policy may be applied to application components deployable within the J2EE Web and Client containers. A Web container is the architected element of a J2EE-compliant application server that manages the lifecycle of and provides the runtime environment for Web-based Java application components. This includes Java Servlets and Java Server Pages (JSP). A Client container manages the lifecycle of and provides the runtime environment for J2EE Java application clients. The J2EE Java application clients are essentially non-managed and require minor support from their container. CORBA application servant objects also may operate under the AMI policy. XML descriptors are used to convey the AMI context management policy to the container when deploying such application components. When servicing a Servlet or JSP business method, the Web container will supply the AMI policy descriptor. When servicing a client request, the Client container assumes the AMI policy. In the event that a business method running under the AMI policy issues a subsequent business method request and did not set an invocation internationalization context element via the API, the servicing computer will propagate the element derived from the local process along with the request.
- Bean Managed Internationalization (BMI)
- Illustratively, BMI is applicable only to Enterprise JavaBeans known in the art. In one embodiment of the present application, the policies of BMI are identical to that of AMI described above. An Enterprise JavaBean is a distributed object model for Java server-side application components that are deployed within and exercised by J2EE-compliant application servers. There are three main types of Enterprise JavaBeans. Those are session beans, entity beans, and message-driven beans. Enterprise JavaBean implementations will primarily provide business logic and database access functions within a J2EE application. The BMI context management policy may be applied to all types of Enterprise JavaBeans.
- At deployment, an application's Enterprise JavaBeans are loaded into an EJB Container. The EJB container is the architected element of a J2EE-compliant application server that manages the lifecycle of and provides the runtime environment for an Enterprise JavaBeans. XML descriptors are used to specify the BMI context management policy to the container. When servicing an Enterprise JavaBean business method, the EJB container will provide the associated BMI policy descriptor. In the event that an EJB business method implementation invokes another business method and did not set an invocation internationalization context element via the API, the servicing computer will propagate the element derived from the local process along with the request.
- Container Managed Internationalization (CMI)
- As an illustration, CMI is the preferred management policy for server-side components. The various application component containers assume the responsibility of managing the invocation internationalization context. For a component (or business method) deployed as CMI, an application developer does not have the ability to set any element of the invocation internationalization context. Illustratively, CMI policy can be RunAsCaller, RunAsServer or RunAsSpecified.
- Under the RunAsCaller policy, a business method will get executed under the internationalization context of the caller (client). The invocation internationalization context comprises the locale and time zone information associated with the inbound call.
- Under the RunAsServer policy, a business method will get executed under the internationalization context of the server process. The invocation internationalization context comprises the locale and time zone information of the server process.
- Under the RunAsSpecified policy, the locale and time zone information is specified in the XML deployment descriptor of the application component. A business method will get executed under the locale and time zone specified in the deployment descriptor. In the event that a business method implementation invokes another business method, and an invocation internationalization context element was not specified via the XML descriptor, the servicing computer will propagate the element derived from the local process along with the request.
- Deployment Descriptors
- Illustratively, deployment descriptors, illustratively written in XML, provide the mechanism for declaratively managing internationalization context within applications at the time of deployment. Although the XML examples that follow describe the management of internationalization context within J2EE application components, CORBA application components may also be deployed using similar XML schemes. Furthermore, while the examples utilize Java formalisms, other programming methods are equally applicable.
- A Servlet or JSP can be deployed in a J2EE Web application with an ‘internationalization-type’ element. The internationalization-type element specifies a server-side Web component's internationalization type. As an illustration, the internationalization type element may be either “Application” (<internationalization type>Application</internationalization type>) or “Container” (<internationalization type>Container</internationalization type>). In one embodiment, the default internationalization type element is “Container”.
- Illustratively, as used in container managed internationalization, an EJB can be deployed in a J2EE application in a similar manner to that of a Servlet or JSP described above. For Enterprise JavaBeans, the internationalization-type element can be either “Bean” or “Container”. For container managed internationalization, there is an internationalization-attribute element specifying the value of the internationalization context that is associated to an invoked business method. Illustratively, the internationalization-attribute element may be RunAsCaller, RunAsServer or RunAsSpecified. The default is RunAsCaller for session and entity beans. For message-driven beans, the default is RunAsServer
- Illustratively, as used in the RunAsSpecified container internationalization, the locale element specifies the locale under which a server-side web component or the business method of an Enterprise JavaBean will execute. As an illustration, the first element may be a one or two letter ISO-639 language code. The second element may be a two-letter ISO-3166 country code. The third element, if present, may indicate a variance where for example, a country code can be specified to be empty. The presence of a variant element mandates the presence of a non-empty country element. The time zone element specifies the time zone under which a server-side web component or the business method of an EJB will execute. The value of a time zone element is any valid time zone identification contained in the Java Software Development Kit (SDK). The SDK, developed by Sun Microsystems, is the software development kit for developing Java applications.
- FIG. 5 shows a network environment illustrating the propagation of the
internationalization context 506 from a client request to a remote server and then to another server and a back-end data store. Theclient 502 is located in a French locale and CET (Central European Time) time zone. Theinvocation internationalization context 506, comprising the client's locale and time-zone information, is transmitted separately from the called method function m1( . . . ). Upon receiving the client request at theserver 510, deployed as RunAsCaller CMI, in the Japan locale and JST (Japanese standard time) time zone, theserver 510 will extract the client's internationalization context and, according to the context management policy, provide the client's internationalization context to request. In this example, it is necessary to further process the client request at anotherremote server 512, deployed as RunAsSpecified, located in the Great Britain locale and GMT (Greenwich Mean Time) time zone. Since the deployment ofserver 512 is RunAsSpecified, theserver 512 creates aninvocation internationalization context 508 comprising the deployment specified English locale and EST (eastern standard time) time zone when further servicing the request at the back-end data store 514 through a J2EE connector. - FIG. 6A illustrates one embodiment of the internationalization
context data structure 600. The internationalizationcontext data structure 600 comprises an ordered array oflocales 610 and a time-zone identifier 612. The ordered array of locales is a sequential list of preferred locales for processing the client request. Illustratively, the most preferred locale will be selected for the client locale. FIG. 6B further illustrates the data structure for alocale entry 602 contained in the ordered array oflocales 610. Illustratively, thelocale entry 602 comprises alanguage code 614, acountry code 616 and a variant-string 618. Thelanguage code 614 may be a two character ISO-639 standard identifier. Thecountry code 616 may be a two character ISO-3166 standard identifier. The variant-string 618 may contain further locale sensitive information such as currency formatting data or specifying a region within a country, for example. One of ordinary skill will appreciate that the foregoing illustrated example of the internationalizationcontext data structure 600 is merely representative. It should be appreciated that other logical combinations of locale specific information may be contained in the internationalizationcontext data structure 600. In particular, theinternationalization context 610 and thetime zone identifier 612 may be spread over a plurality of data structures and cross referenced by pointers. - In one embodiment, the
internationalization context 600 may be implemented as a service context, processed by the ORB 210 (see FIG. 2) within CORBA (common object request broker architecture). CORBA is an architecture that enables application components, called objects, to communicate with one another regardless of what programming language they were written in or what operating system they are running on. There are several implementations of CORBA, the most widely used being IBM's SOM (system object model) and DSOM (distributed system object model) architectures. SOM is a programming architecture developed by IBM that allows binary code to be shared by different applications. DSOM is a version of SOM that supports sharing binary objects across networks. - FIG. 7 illustrates a flowchart implementing management of the internationalization context at a client side. The routine begins at
step 702 whenever the client application component invokes a remote business method. In preparation for the population of locale and time zone elements within the context to be propagated (PC), all element areas are created and initialized. - At
step 704, the invocation context associated with the current thread is obtained and its elements are copied into the PC. Illustratively, the invocation context comprises locale and time zone information and context management policies. Atstep 706, the routine queries if the locale information in the internationalization context is set to null data. If so, the routine places the locale information from the default setting of the client computer and places it in the internationalization context atstep 708 and proceeds to step 710. If the internationalization context is not set to null data, the routine, atstep 710, queries if the time zone information is set to null data. If so, the routine attempts to extract the time zone information from the current process environment atstep 712 and proceeds to step 714. Atstep 714, the routine queries if the time zone information was successfully extracted from the current process environment. If so, the routine proceeds to step 716 where the time zone is set to the extracted time zone. If not, the routine proceeds to step 718 where the time zone is set to Greenwich Mean Time (GMT). The routine then proceeds to step 720. - At
step 720, the information contained in the internationalization context is converted into serialized form and then placed with the outgoing RMI-IIOP request atstep 722. The routine then proceeds to step 724 where the request is marshaled to the server. - FIG. 8 illustrates a flowchart for computing the
internationalization context 600 propagated to a server computer. The routine begins atstep 802 where theORB 310 de-marshals the incoming RMI-IIOP request. Atstep 804, the routine queries if the request contains serialized internationalization context. If so, the propagated internationalization context (PC) is extracted from the request atstep 806. If the request does not contain the internationalization context, the routine, atstep 810, sets the locale and time zone information is set to null. The routine then proceeds to step 808 where the serialized internationalization context is placed in de-serialized form. - At
step 812, a caller internationalization context (CIC) is created and its elements are initialized to the locale and time zone of the propagated context (PC). Atstep 814, the routine queries if the locale information in the caller internationalization context is set to null. If so, the routine proceeds to step 816 where the default locale of the server is extracted and assigned as the locale for processing the request. If the locale information is not set to null, the routine, atstep 818, queries if the time zone information of the CIC is set to null. If so, the routine, atstep 820, attempts to extract the time zone information from the current process environment. Atstep 822, the routine queries if the time zone information was successfully extracted. If not, the routine, atstep 826, assigns GMT time as the time zone for the internationalization context. If so, the successfully extracted time zone information is assigned as the time zone of the internationalization context atstep 824. - At
step 828, the routine obtains the context management policy from the container. Atstep 832, the routine creates an invocation internationalization context (IIC) with its elements initialized to null. Atstep 832, the routine queries if the management policy is AMI. Atstep 834, the routine queries if the management policy is BMI. If the management policy is either AMI or BMI, the routine proceeds to step 850 where the IIC elements are left at null. If the management policy is neither AMI nor BMI, the routine proceeds to step 836 where the routine queries if the management policy is CMI RunAsCaller. If so, the routine assigns the IIC elements to be those of the CIC. The routine then proceeds to step 852 where the CIC and IIC are associated with the current thread making both available to the current process. If the management policy is not CMI RunAsCaller, the routine queries, atstep 838 if the management policy is CMI RunAsSpecified. If so, the IIC elements are assigned to be those specified in the context management policy descriptor atstep 846. The routine then proceeds to step 852. If not, the method queries if the management policy is CMI RunAsServer. If so, the IIC elements as assigned to be those of the current server process. The routine then proceeds to step 852. If not, the routine proceeds to step 850. - Accordingly, the present embodiments provide for transmitting and managing internationalization information. Receiving machines (e.g., servers) are configured (e.g., with Application programming interfaces (APIs)) to provide the internationalization information to an application. The application may then use the internationalization information in preparing a response to a client or in order to perform processing in general. For example, the internationalization information may be used to format a response according user preferences. In another embodiment, the internationalization information may provide rules or conditions for calculations (e.g., preparing tax returns, e-Commerce transactions, etc.). In this manner, the present embodiments ensure meaningful network transactions that are sensitive to international diversity.
- While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
Claims (33)
1. A system in a distributed computing environment having a plurality of nodes located across geographically dispersed boundaries, comprising:
a server configured with an internationalization application programming interface configured to extract an internationalization context provided by a client device and retrieve an internationalization context management policy; and
a resource manager configured to receive the internationalization context and internationalization context management policy extracted by the server and process a request received from the client device using the internationalization context that is configured by the internationalization context management policy.
2. The system of claim 1 , wherein the resource manager is a database management system.
3. The system of claim 1 , wherein the resource manager comprises an application which is configured to use the internationalization context according to the internationalization context management policy to perform calculations and return a result formatted according to a specification of the internationalization context.
4. The system of claim 1 , wherein the internationalization context contains at least one of a country identification, a language identification and a time zone identifier.
5. The system of claim 1 , wherein the internationalization context is transmitted by the server to at least one of the plurality of nodes in the distributed computing environment.
6. The system of claim 1 , wherein the internationalization context comprises locale information and a time zone identifier.
7. The system of claim 6 , wherein the locale information comprises at least one of a country identifier, a language identifier and a currency identifier.
8. A method of processing requests in a distributed computing environment having clients and a plurality of servers located across geographically dispersed boundaries, comprising:
receiving a first request from a client at a server;
receiving a second request from the client at the server, wherein the second request comprises an internationalization context for processing the first request;
extracting the internationalization context from the second request;
retrieving an internationalization context management policy; and
processing the first request at the server using the internationalization context that is configured by the internationalization context management policy.
9. The method of claim 8 , wherein processing the first request comprises providing the first request and internationalization context to an application to perform calculations using the internationalization context and return a result formatted according to the internationalization context.
10. The method of claim 8 , wherein the context management policy assigns context elements to be those of the client context.
11. The method of claim 8 , wherein the context management policy assigns context elements to be those of a predefined descriptor.
12. The method of claim 8 , wherein the context management policy assigns context elements to be those of the server process.
13. The method of claim 8 , further comprising sending the internationalization context from the server to at least one of the plurality of servers in the distributed computing environment.
14. The method of claim 8 , wherein the internationalization context contains at least one of a country identifier, a language identifier and a time zone identifier.
15. The method of 8, wherein the internationalization context contains at least a locale specification and a time zone identifier.
16. The method of claim 15 , wherein the locale specification comprises at least one of a country identifier, a language identifier and a currency identifier.
17. The method of claim 8 , further comprising processing the first request according to a country identifier of the server if the internationalization context does not contain a country identifier.
18. The method of claim 8 , further comprising processing the first request according to a universal time zone identifier if the internationalization context does not contain a time zone identifier of the client.
19. The method of claim 8 , further comprising processing the first request according to a time zone identifier of the server if the internationalization context does not contain a time zone identifier.
20. A method of processing requests in a distributed computing environment comprising a client computer and a plurality of server computers, comprising:
receiving, at one of the plurality of server computers, an internationalization context from the client computer , wherein the internationalization context contains at least a locale specification and a time zone identifier;
retrieving an internationalization context management policy; and
processing a request from the client computer according to the internationalization context that is configured by the internationalization context management policy.
21. The method of claim 20 , wherein the context management policy assigns context elements to be those of the client context.
22. The method of claim 20 , wherein the context management policy assigns context elements to be those of a predefined descriptor.
23. The method of claim 20 , wherein the context management policy assigns context elements to be those of the server process.
24. The method of claim 20 , wherein the internationalization context contains at least one of a country identifier, a language identifier and a time zone identifier.
25. The method of claim 20 , wherein the client and the plurality of servers are located across geographically dispersed boundaries.
26. The method of claim 20 , wherein the locale specification comprises at least one of a country identifier, a language identifier and a currency identifier.
27. A signal bearing medium, comprising a program which, when executed, performs an operation, comprising:
receiving a request from a client computer, wherein the request contains internationalization context;
extracting the internationalization context from the request;
retrieving an internationalization context management policy; and
providing the internationalization context to an application in order to configure the application to process a request from the client computer according to the internationalization context that is configured by the internationalization context management policy.
28. The signal bearing medium of claim 27 , wherein the context management policy assigns context elements to be those of the client context.
29. The signal bearing medium of claim 27 , wherein the context management policy assigns context elements to be those of a predefined descriptor.
30. The signal bearing medium of claim 27 , wherein the context management policy assigns context elements to be those of the server process
31. The signal bearing medium of claim 27 , wherein the internationalization context contains at least one of a country identifier, a language identifier and a time zone identifier.
32. The signal bearing medium of claim 27 , wherein the internationalization context contains at least a locale specification and a time zone identifier.
33. The signal bearing medium of claim 32 , wherein the locale specification comprises at least one of a country identifier, a language identifier and a currency identifier.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/000,686 US20030093465A1 (en) | 2001-10-31 | 2001-10-31 | Management strategies for internationalization in a distributed computer environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/000,686 US20030093465A1 (en) | 2001-10-31 | 2001-10-31 | Management strategies for internationalization in a distributed computer environment |
Publications (1)
Publication Number | Publication Date |
---|---|
US20030093465A1 true US20030093465A1 (en) | 2003-05-15 |
Family
ID=21692600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/000,686 Abandoned US20030093465A1 (en) | 2001-10-31 | 2001-10-31 | Management strategies for internationalization in a distributed computer environment |
Country Status (1)
Country | Link |
---|---|
US (1) | US20030093465A1 (en) |
Cited By (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030131049A1 (en) * | 2002-01-08 | 2003-07-10 | International Business Machines Corporation | Internationalization of the web services infrastructure |
US20030220965A1 (en) * | 2002-05-22 | 2003-11-27 | International Business Machines Corporation | Time zone negotiation in a client-server communication architecture |
US20050071211A1 (en) * | 2003-09-26 | 2005-03-31 | Flockhart Andrew D. | Method and apparatus for assessing the status of work waiting for service |
US20060101453A1 (en) * | 2004-11-04 | 2006-05-11 | International Business Machines Corporation | Deploying Java applications in resource constrained environments |
US20070067728A1 (en) * | 2005-08-31 | 2007-03-22 | Wenphing Lo | Method for enforcing group oriented workflow requirements for multi-layered documents |
US20070129298A1 (en) * | 2005-07-22 | 2007-06-07 | Maxygen Holdings, Ltd. | In-solution activation of factor vii |
US20090030673A1 (en) * | 2007-07-26 | 2009-01-29 | International Business Machines Corporation | Automatically identifying unique language independent keys correlated with appropriate text strings of various locales by key search |
US20090132908A1 (en) * | 2003-07-31 | 2009-05-21 | International Business Machines Corporation | Apparatus, program and method for accepting a request from a client computer via a network and executing a web application |
US20090144323A1 (en) * | 2007-11-30 | 2009-06-04 | Jian Tang | System and Method for Querying Historical Bean Data |
US7567653B1 (en) | 2005-03-22 | 2009-07-28 | Avaya Inc. | Method by which call centers can vector inbound TTY calls automatically to TTY-enabled resources |
US20090210216A1 (en) * | 2008-02-14 | 2009-08-20 | Microsoft Corporation | Storage Device That Provides Efficient, Updatable National Language Support For A Mobile Device |
US20090248396A1 (en) * | 2008-03-28 | 2009-10-01 | International Business Machines Corporation | Method for automating an internationalization test in a multilingual web application |
US20090276794A1 (en) * | 2002-08-23 | 2009-11-05 | At&T Intellectual Property I, L.P. | System and Method for Providing Interoperability Between Different Programming Protocols |
US20100088695A1 (en) * | 2008-10-03 | 2010-04-08 | Takashi Kakinari | System and method for localizing a server application using a client-side translator |
US7711104B1 (en) | 2004-03-31 | 2010-05-04 | Avaya Inc. | Multi-tasking tracking agent |
US7734032B1 (en) | 2004-03-31 | 2010-06-08 | Avaya Inc. | Contact center and method for tracking and acting on one and done customer contacts |
US7752230B2 (en) | 2005-10-06 | 2010-07-06 | Avaya Inc. | Data extensibility using external database tables |
US7779042B1 (en) | 2005-08-08 | 2010-08-17 | Avaya Inc. | Deferred control of surrogate key generation in a distributed processing architecture |
US7809127B2 (en) | 2005-05-26 | 2010-10-05 | Avaya Inc. | Method for discovering problem agent behaviors |
US7822587B1 (en) | 2005-10-03 | 2010-10-26 | Avaya Inc. | Hybrid database architecture for both maintaining and relaxing type 2 data entity behavior |
US20110047002A1 (en) * | 2009-08-21 | 2011-02-24 | Avaya Inc. | Mechanism for multisite service state description |
US7936867B1 (en) | 2006-08-15 | 2011-05-03 | Avaya Inc. | Multi-service request within a contact center |
US20110106883A1 (en) * | 2008-07-01 | 2011-05-05 | Ajay Gupta | Remote computing services |
US7949121B1 (en) | 2004-09-27 | 2011-05-24 | Avaya Inc. | Method and apparatus for the simultaneous delivery of multiple contacts to an agent |
US8000989B1 (en) | 2004-03-31 | 2011-08-16 | Avaya Inc. | Using true value in routing work items to resources |
US20110302220A1 (en) * | 2010-06-08 | 2011-12-08 | Albert Marcella | Sql processing for data conversion |
US8116237B2 (en) | 2008-09-26 | 2012-02-14 | Avaya Inc. | Clearing house for publish/subscribe of status data from distributed telecommunications systems |
CN102523294A (en) * | 2011-12-19 | 2012-06-27 | 中山爱科数字科技股份有限公司 | A computing resource allocation device applied to a distributed computing environment |
US8234141B1 (en) | 2004-09-27 | 2012-07-31 | Avaya Inc. | Dynamic work assignment strategies based on multiple aspects of agent proficiency |
US8238541B1 (en) | 2006-01-31 | 2012-08-07 | Avaya Inc. | Intent based skill-set classification for accurate, automatic determination of agent skills |
US8385533B2 (en) | 2009-09-21 | 2013-02-26 | Avaya Inc. | Bidding work assignment on conference/subscribe RTP clearing house |
US8391463B1 (en) | 2006-09-01 | 2013-03-05 | Avaya Inc. | Method and apparatus for identifying related contacts |
US20130132610A1 (en) * | 2011-11-17 | 2013-05-23 | Samsung Electronics Co., Ltd. | System and method for synchronizing calendar information |
US8504534B1 (en) | 2007-09-26 | 2013-08-06 | Avaya Inc. | Database structures and administration techniques for generalized localization of database items |
US8565386B2 (en) | 2009-09-29 | 2013-10-22 | Avaya Inc. | Automatic configuration of soft phones that are usable in conjunction with special-purpose endpoints |
US8675860B2 (en) | 2012-02-16 | 2014-03-18 | Avaya Inc. | Training optimizer for contact center agents |
US20140095654A1 (en) * | 2012-09-29 | 2014-04-03 | Siemens Industry, Inc. | System for Monitoring Multiple Building Automation Systems |
US8738412B2 (en) | 2004-07-13 | 2014-05-27 | Avaya Inc. | Method and apparatus for supporting individualized selection rules for resource allocation |
US8737173B2 (en) | 2006-02-24 | 2014-05-27 | Avaya Inc. | Date and time dimensions for contact center reporting in arbitrary international time zones |
US8767944B1 (en) | 2007-01-03 | 2014-07-01 | Avaya Inc. | Mechanism for status and control communication over SIP using CODEC tunneling |
US8811597B1 (en) | 2006-09-07 | 2014-08-19 | Avaya Inc. | Contact center performance prediction |
US8856182B2 (en) | 2008-01-25 | 2014-10-07 | Avaya Inc. | Report database dependency tracing through business intelligence metadata |
US8938063B1 (en) | 2006-09-07 | 2015-01-20 | Avaya Inc. | Contact center service monitoring and correcting |
US8964958B2 (en) | 2009-05-20 | 2015-02-24 | Avaya Inc. | Grid-based contact center |
US20190245888A1 (en) * | 2008-06-19 | 2019-08-08 | Csc Agility Platform, Inc. | System and method for a cloud computing abstraction layer with security zone facilities |
CN111339128A (en) * | 2018-12-18 | 2020-06-26 | 北京嘀嘀无限科技发展有限公司 | Data acquisition method and device, electronic equipment and storage medium |
US10880189B2 (en) | 2008-06-19 | 2020-12-29 | Csc Agility Platform, Inc. | System and method for a cloud computing abstraction with self-service portal for publishing resources |
US12242599B1 (en) | 2024-09-27 | 2025-03-04 | strongDM, Inc. | Fine-grained security policy enforcement for applications |
US12248971B2 (en) | 2008-06-19 | 2025-03-11 | Videolabs, Inc. | Systems and methods for providing repeated use of computing resources |
Citations (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5404523A (en) * | 1993-11-10 | 1995-04-04 | Digital Equipment Corporation | Method of managing requests in a transaction processing system |
US5680610A (en) * | 1995-01-19 | 1997-10-21 | Unisys Corporation | Method and apparatus for testing recovery scenarios in global transaction processing systems |
US5826239A (en) * | 1996-12-17 | 1998-10-20 | Hewlett-Packard Company | Distributed workflow resource management system and method |
US5835768A (en) * | 1995-03-30 | 1998-11-10 | International Business Machines Corporation | Computer operating system providing means for formatting information in accordance with specified cultural preferences |
US5900871A (en) * | 1997-03-10 | 1999-05-04 | International Business Machines Corporation | System and method for managing multiple cultural profiles in an information handling system |
US5907326A (en) * | 1997-03-10 | 1999-05-25 | International Business Machines Corporation | System and method for updating cultural profiles with dragging and dropping locale objects |
US5944790A (en) * | 1996-07-19 | 1999-08-31 | Lucent Technologies Inc. | Method and apparatus for providing a web site having a home page that automatically adapts to user language and customs |
US6112246A (en) * | 1998-10-22 | 2000-08-29 | Horbal; Mark T. | System and method for accessing information from a remote device and providing the information to a client workstation |
US6147693A (en) * | 1998-05-29 | 2000-11-14 | Hewlett-Packard Company | Localizable date time spinner |
US6148290A (en) * | 1998-09-04 | 2000-11-14 | International Business Machines Corporation | Service contract for managing service systems |
US6151631A (en) * | 1998-10-15 | 2000-11-21 | Liquid Audio Inc. | Territorial determination of remote computer location in a wide area network for conditional delivery of digitized products |
US6161139A (en) * | 1998-07-10 | 2000-12-12 | Encommerce, Inc. | Administrative roles that govern access to administrative functions |
US6167567A (en) * | 1998-05-05 | 2000-12-26 | 3Com Corporation | Technique for automatically updating software stored on a client computer in a networked client-server environment |
US6185729B1 (en) * | 1996-03-04 | 2001-02-06 | Sun Microsystems, Inc. | Multibyte locale for single byte languages |
US6219632B1 (en) * | 1997-11-20 | 2001-04-17 | International Business Machines Corporation | System for the facilitation of supporting multiple concurrent languages through the use of semantic knowledge representation |
US6269400B1 (en) * | 1998-07-22 | 2001-07-31 | International Business Machines Corporation | Method for discovering and registering agents in a distributed network |
US6314469B1 (en) * | 1999-02-26 | 2001-11-06 | I-Dns.Net International Pte Ltd | Multi-language domain name service |
US6393474B1 (en) * | 1998-12-31 | 2002-05-21 | 3Com Corporation | Dynamic policy management apparatus and method using active network devices |
US6453356B1 (en) * | 1998-04-15 | 2002-09-17 | Adc Telecommunications, Inc. | Data exchange system and method |
US6463470B1 (en) * | 1998-10-26 | 2002-10-08 | Cisco Technology, Inc. | Method and apparatus of storing policies for policy-based management of quality of service treatments of network data traffic flows |
US20020156688A1 (en) * | 2001-02-21 | 2002-10-24 | Michel Horn | Global electronic commerce system |
US20020162093A1 (en) * | 2001-04-30 | 2002-10-31 | Ming Zhou | Internationalization compiler and process for localizing server applications |
US20020184308A1 (en) * | 1999-08-23 | 2002-12-05 | Levy Martin J. | Globalization and normalization features for processing business objects |
US20020188722A1 (en) * | 2001-05-30 | 2002-12-12 | International Business Machines Corporation | Localization in distributed computer environments |
US6496793B1 (en) * | 1993-04-21 | 2002-12-17 | Borland Software Corporation | System and methods for national language support with embedded locale-specific language driver identifiers |
US20030014733A1 (en) * | 2001-07-10 | 2003-01-16 | Ringseth Paul F. | System and methods for providing a declarative syntax for specifying SOAP-based web services |
US20030079051A1 (en) * | 2001-10-24 | 2003-04-24 | Dean Moses | Method and system for the internationalization of computer programs employing graphical user interface |
US6560633B1 (en) * | 1999-06-10 | 2003-05-06 | Bow Street Software, Inc. | Method for creating network services by transforming an XML runtime model in response to an iterative input process |
US20030088544A1 (en) * | 2001-05-04 | 2003-05-08 | Sun Microsystems, Inc. | Distributed information discovery |
US20030105884A1 (en) * | 2001-10-18 | 2003-06-05 | Mitch Upton | System and method for using Web services with an enterprise system |
US6621793B2 (en) * | 2000-05-22 | 2003-09-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Application influenced policy |
US6643652B2 (en) * | 2000-01-14 | 2003-11-04 | Saba Software, Inc. | Method and apparatus for managing data exchange among systems in a network |
US6704024B2 (en) * | 2000-08-07 | 2004-03-09 | Zframe, Inc. | Visual content browsing using rasterized representations |
US6766314B2 (en) * | 2001-04-05 | 2004-07-20 | International Business Machines Corporation | Method for attachment and recognition of external authorization policy on file system resources |
US6792605B1 (en) * | 1999-06-10 | 2004-09-14 | Bow Street Software, Inc. | Method and apparatus for providing web based services using an XML Runtime model to store state session data |
US6857023B2 (en) * | 2000-04-25 | 2005-02-15 | Pegasus Solutions, Inc. | System uses an interface controller for managing operations of devices that each has a unique communication protocol |
US6882996B2 (en) * | 2001-05-31 | 2005-04-19 | International Business Machines Corporation | System, method, and computer program product for reformatting non-XML data for use with internet based systems |
US6915338B1 (en) * | 2000-10-24 | 2005-07-05 | Microsoft Corporation | System and method providing automatic policy enforcement in a multi-computer service application |
US6983238B2 (en) * | 2001-02-07 | 2006-01-03 | American International Group, Inc. | Methods and apparatus for globalizing software |
-
2001
- 2001-10-31 US US10/000,686 patent/US20030093465A1/en not_active Abandoned
Patent Citations (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6496793B1 (en) * | 1993-04-21 | 2002-12-17 | Borland Software Corporation | System and methods for national language support with embedded locale-specific language driver identifiers |
US5404523A (en) * | 1993-11-10 | 1995-04-04 | Digital Equipment Corporation | Method of managing requests in a transaction processing system |
US5680610A (en) * | 1995-01-19 | 1997-10-21 | Unisys Corporation | Method and apparatus for testing recovery scenarios in global transaction processing systems |
US5835768A (en) * | 1995-03-30 | 1998-11-10 | International Business Machines Corporation | Computer operating system providing means for formatting information in accordance with specified cultural preferences |
US6185729B1 (en) * | 1996-03-04 | 2001-02-06 | Sun Microsystems, Inc. | Multibyte locale for single byte languages |
US5944790A (en) * | 1996-07-19 | 1999-08-31 | Lucent Technologies Inc. | Method and apparatus for providing a web site having a home page that automatically adapts to user language and customs |
US5826239A (en) * | 1996-12-17 | 1998-10-20 | Hewlett-Packard Company | Distributed workflow resource management system and method |
US5900871A (en) * | 1997-03-10 | 1999-05-04 | International Business Machines Corporation | System and method for managing multiple cultural profiles in an information handling system |
US5907326A (en) * | 1997-03-10 | 1999-05-25 | International Business Machines Corporation | System and method for updating cultural profiles with dragging and dropping locale objects |
US6219632B1 (en) * | 1997-11-20 | 2001-04-17 | International Business Machines Corporation | System for the facilitation of supporting multiple concurrent languages through the use of semantic knowledge representation |
US6453356B1 (en) * | 1998-04-15 | 2002-09-17 | Adc Telecommunications, Inc. | Data exchange system and method |
US6167567A (en) * | 1998-05-05 | 2000-12-26 | 3Com Corporation | Technique for automatically updating software stored on a client computer in a networked client-server environment |
US6147693A (en) * | 1998-05-29 | 2000-11-14 | Hewlett-Packard Company | Localizable date time spinner |
US6161139A (en) * | 1998-07-10 | 2000-12-12 | Encommerce, Inc. | Administrative roles that govern access to administrative functions |
US6269400B1 (en) * | 1998-07-22 | 2001-07-31 | International Business Machines Corporation | Method for discovering and registering agents in a distributed network |
US6148290A (en) * | 1998-09-04 | 2000-11-14 | International Business Machines Corporation | Service contract for managing service systems |
US6151631A (en) * | 1998-10-15 | 2000-11-21 | Liquid Audio Inc. | Territorial determination of remote computer location in a wide area network for conditional delivery of digitized products |
US6112246A (en) * | 1998-10-22 | 2000-08-29 | Horbal; Mark T. | System and method for accessing information from a remote device and providing the information to a client workstation |
US6463470B1 (en) * | 1998-10-26 | 2002-10-08 | Cisco Technology, Inc. | Method and apparatus of storing policies for policy-based management of quality of service treatments of network data traffic flows |
US6393474B1 (en) * | 1998-12-31 | 2002-05-21 | 3Com Corporation | Dynamic policy management apparatus and method using active network devices |
US6314469B1 (en) * | 1999-02-26 | 2001-11-06 | I-Dns.Net International Pte Ltd | Multi-language domain name service |
US6792605B1 (en) * | 1999-06-10 | 2004-09-14 | Bow Street Software, Inc. | Method and apparatus for providing web based services using an XML Runtime model to store state session data |
US6560633B1 (en) * | 1999-06-10 | 2003-05-06 | Bow Street Software, Inc. | Method for creating network services by transforming an XML runtime model in response to an iterative input process |
US20020184308A1 (en) * | 1999-08-23 | 2002-12-05 | Levy Martin J. | Globalization and normalization features for processing business objects |
US6643652B2 (en) * | 2000-01-14 | 2003-11-04 | Saba Software, Inc. | Method and apparatus for managing data exchange among systems in a network |
US6857023B2 (en) * | 2000-04-25 | 2005-02-15 | Pegasus Solutions, Inc. | System uses an interface controller for managing operations of devices that each has a unique communication protocol |
US6621793B2 (en) * | 2000-05-22 | 2003-09-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Application influenced policy |
US6704024B2 (en) * | 2000-08-07 | 2004-03-09 | Zframe, Inc. | Visual content browsing using rasterized representations |
US6915338B1 (en) * | 2000-10-24 | 2005-07-05 | Microsoft Corporation | System and method providing automatic policy enforcement in a multi-computer service application |
US6983238B2 (en) * | 2001-02-07 | 2006-01-03 | American International Group, Inc. | Methods and apparatus for globalizing software |
US20020156688A1 (en) * | 2001-02-21 | 2002-10-24 | Michel Horn | Global electronic commerce system |
US6766314B2 (en) * | 2001-04-05 | 2004-07-20 | International Business Machines Corporation | Method for attachment and recognition of external authorization policy on file system resources |
US20020162093A1 (en) * | 2001-04-30 | 2002-10-31 | Ming Zhou | Internationalization compiler and process for localizing server applications |
US20030088544A1 (en) * | 2001-05-04 | 2003-05-08 | Sun Microsystems, Inc. | Distributed information discovery |
US20020188722A1 (en) * | 2001-05-30 | 2002-12-12 | International Business Machines Corporation | Localization in distributed computer environments |
US6882996B2 (en) * | 2001-05-31 | 2005-04-19 | International Business Machines Corporation | System, method, and computer program product for reformatting non-XML data for use with internet based systems |
US20030014733A1 (en) * | 2001-07-10 | 2003-01-16 | Ringseth Paul F. | System and methods for providing a declarative syntax for specifying SOAP-based web services |
US20030105884A1 (en) * | 2001-10-18 | 2003-06-05 | Mitch Upton | System and method for using Web services with an enterprise system |
US20030079051A1 (en) * | 2001-10-24 | 2003-04-24 | Dean Moses | Method and system for the internationalization of computer programs employing graphical user interface |
Cited By (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030131049A1 (en) * | 2002-01-08 | 2003-07-10 | International Business Machines Corporation | Internationalization of the web services infrastructure |
US7318082B2 (en) * | 2002-05-22 | 2008-01-08 | International Business Machines Corporation | Time zone negotiation in a client-server communication architecture |
US20030220965A1 (en) * | 2002-05-22 | 2003-11-27 | International Business Machines Corporation | Time zone negotiation in a client-server communication architecture |
US20090276794A1 (en) * | 2002-08-23 | 2009-11-05 | At&T Intellectual Property I, L.P. | System and Method for Providing Interoperability Between Different Programming Protocols |
US8276166B2 (en) * | 2002-08-23 | 2012-09-25 | At&T Intellectual Property I, L.P. | System and method for providing interoperability between different programming protocols |
US8938744B2 (en) | 2002-08-23 | 2015-01-20 | At&T Intellectual Property I, L.P. | System and method for providing interoperability between different programming protocols |
US20090132908A1 (en) * | 2003-07-31 | 2009-05-21 | International Business Machines Corporation | Apparatus, program and method for accepting a request from a client computer via a network and executing a web application |
US7996764B2 (en) * | 2003-07-31 | 2011-08-09 | International Business Machines Corporation | Apparatus, program and method for accepting a request from a client computer via a network and executing a web application |
US20050071211A1 (en) * | 2003-09-26 | 2005-03-31 | Flockhart Andrew D. | Method and apparatus for assessing the status of work waiting for service |
US20080275752A1 (en) * | 2003-09-26 | 2008-11-06 | Flockhart Andrew D | Method and apparatus for assessing the status of work waiting for service |
US8751274B2 (en) | 2003-09-26 | 2014-06-10 | Avaya Inc. | Method and apparatus for assessing the status of work waiting for service |
US20080275766A1 (en) * | 2003-09-26 | 2008-11-06 | Flockhart Andrew D | Method and apparatus for assessing the status of work waiting for service |
US8891747B2 (en) | 2003-09-26 | 2014-11-18 | Avaya Inc. | Method and apparatus for assessing the status of work waiting for service |
US9025761B2 (en) | 2003-09-26 | 2015-05-05 | Avaya Inc. | Method and apparatus for assessing the status of work waiting for service |
US8094804B2 (en) | 2003-09-26 | 2012-01-10 | Avaya Inc. | Method and apparatus for assessing the status of work waiting for service |
US7953859B1 (en) * | 2004-03-31 | 2011-05-31 | Avaya Inc. | Data model of participation in multi-channel and multi-party contacts |
US8000989B1 (en) | 2004-03-31 | 2011-08-16 | Avaya Inc. | Using true value in routing work items to resources |
US8731177B1 (en) | 2004-03-31 | 2014-05-20 | Avaya Inc. | Data model of participation in multi-channel and multi-party contacts |
US7711104B1 (en) | 2004-03-31 | 2010-05-04 | Avaya Inc. | Multi-tasking tracking agent |
US7734032B1 (en) | 2004-03-31 | 2010-06-08 | Avaya Inc. | Contact center and method for tracking and acting on one and done customer contacts |
US8738412B2 (en) | 2004-07-13 | 2014-05-27 | Avaya Inc. | Method and apparatus for supporting individualized selection rules for resource allocation |
US8234141B1 (en) | 2004-09-27 | 2012-07-31 | Avaya Inc. | Dynamic work assignment strategies based on multiple aspects of agent proficiency |
US7949121B1 (en) | 2004-09-27 | 2011-05-24 | Avaya Inc. | Method and apparatus for the simultaneous delivery of multiple contacts to an agent |
US7849459B2 (en) * | 2004-11-04 | 2010-12-07 | International Business Machines Corporation | Deploying java applications in resource constrained environments |
US20060101453A1 (en) * | 2004-11-04 | 2006-05-11 | International Business Machines Corporation | Deploying Java applications in resource constrained environments |
US7567653B1 (en) | 2005-03-22 | 2009-07-28 | Avaya Inc. | Method by which call centers can vector inbound TTY calls automatically to TTY-enabled resources |
US7809127B2 (en) | 2005-05-26 | 2010-10-05 | Avaya Inc. | Method for discovering problem agent behaviors |
US20070129298A1 (en) * | 2005-07-22 | 2007-06-07 | Maxygen Holdings, Ltd. | In-solution activation of factor vii |
US8578396B2 (en) | 2005-08-08 | 2013-11-05 | Avaya Inc. | Deferred control of surrogate key generation in a distributed processing architecture |
US7779042B1 (en) | 2005-08-08 | 2010-08-17 | Avaya Inc. | Deferred control of surrogate key generation in a distributed processing architecture |
US20070067728A1 (en) * | 2005-08-31 | 2007-03-22 | Wenphing Lo | Method for enforcing group oriented workflow requirements for multi-layered documents |
US8332738B2 (en) * | 2005-08-31 | 2012-12-11 | Sap Ag | Method for enforcing group oriented workflow requirements for multi-layered documents |
US7822587B1 (en) | 2005-10-03 | 2010-10-26 | Avaya Inc. | Hybrid database architecture for both maintaining and relaxing type 2 data entity behavior |
US7752230B2 (en) | 2005-10-06 | 2010-07-06 | Avaya Inc. | Data extensibility using external database tables |
US8238541B1 (en) | 2006-01-31 | 2012-08-07 | Avaya Inc. | Intent based skill-set classification for accurate, automatic determination of agent skills |
US8737173B2 (en) | 2006-02-24 | 2014-05-27 | Avaya Inc. | Date and time dimensions for contact center reporting in arbitrary international time zones |
US7936867B1 (en) | 2006-08-15 | 2011-05-03 | Avaya Inc. | Multi-service request within a contact center |
US8391463B1 (en) | 2006-09-01 | 2013-03-05 | Avaya Inc. | Method and apparatus for identifying related contacts |
US8811597B1 (en) | 2006-09-07 | 2014-08-19 | Avaya Inc. | Contact center performance prediction |
US8938063B1 (en) | 2006-09-07 | 2015-01-20 | Avaya Inc. | Contact center service monitoring and correcting |
US8767944B1 (en) | 2007-01-03 | 2014-07-01 | Avaya Inc. | Mechanism for status and control communication over SIP using CODEC tunneling |
US20090030673A1 (en) * | 2007-07-26 | 2009-01-29 | International Business Machines Corporation | Automatically identifying unique language independent keys correlated with appropriate text strings of various locales by key search |
US7953591B2 (en) | 2007-07-26 | 2011-05-31 | International Business Machines Corporation | Automatically identifying unique language independent keys correlated with appropriate text strings of various locales by key search |
US8504534B1 (en) | 2007-09-26 | 2013-08-06 | Avaya Inc. | Database structures and administration techniques for generalized localization of database items |
US8341647B2 (en) * | 2007-11-30 | 2012-12-25 | International Business Machines Corporation | System and method for querying historical bean data |
US20090144323A1 (en) * | 2007-11-30 | 2009-06-04 | Jian Tang | System and Method for Querying Historical Bean Data |
US8856182B2 (en) | 2008-01-25 | 2014-10-07 | Avaya Inc. | Report database dependency tracing through business intelligence metadata |
US20090210216A1 (en) * | 2008-02-14 | 2009-08-20 | Microsoft Corporation | Storage Device That Provides Efficient, Updatable National Language Support For A Mobile Device |
US8010339B2 (en) * | 2008-02-14 | 2011-08-30 | Microsoft Corporation | Storage device that provides efficient, updatable national language support for a mobile device |
US20090248396A1 (en) * | 2008-03-28 | 2009-10-01 | International Business Machines Corporation | Method for automating an internationalization test in a multilingual web application |
US7698688B2 (en) * | 2008-03-28 | 2010-04-13 | International Business Machines Corporation | Method for automating an internationalization test in a multilingual web application |
US12248971B2 (en) | 2008-06-19 | 2025-03-11 | Videolabs, Inc. | Systems and methods for providing repeated use of computing resources |
US10880189B2 (en) | 2008-06-19 | 2020-12-29 | Csc Agility Platform, Inc. | System and method for a cloud computing abstraction with self-service portal for publishing resources |
US20210014275A1 (en) * | 2008-06-19 | 2021-01-14 | Csc Agility Platform, Inc. | System and method for a cloud computing abstraction layer with security zone facilities |
US20190245888A1 (en) * | 2008-06-19 | 2019-08-08 | Csc Agility Platform, Inc. | System and method for a cloud computing abstraction layer with security zone facilities |
US20110106883A1 (en) * | 2008-07-01 | 2011-05-05 | Ajay Gupta | Remote computing services |
US8116237B2 (en) | 2008-09-26 | 2012-02-14 | Avaya Inc. | Clearing house for publish/subscribe of status data from distributed telecommunications systems |
US20100088695A1 (en) * | 2008-10-03 | 2010-04-08 | Takashi Kakinari | System and method for localizing a server application using a client-side translator |
US8347287B2 (en) * | 2008-10-03 | 2013-01-01 | Hewlett-Packard Development Company, L.P. | System and method for localizing a server application using a client-side translator |
US8964958B2 (en) | 2009-05-20 | 2015-02-24 | Avaya Inc. | Grid-based contact center |
US20110047002A1 (en) * | 2009-08-21 | 2011-02-24 | Avaya Inc. | Mechanism for multisite service state description |
US8644491B2 (en) | 2009-08-21 | 2014-02-04 | Avaya Inc. | Mechanism for multisite service state description |
US8385533B2 (en) | 2009-09-21 | 2013-02-26 | Avaya Inc. | Bidding work assignment on conference/subscribe RTP clearing house |
US8565386B2 (en) | 2009-09-29 | 2013-10-22 | Avaya Inc. | Automatic configuration of soft phones that are usable in conjunction with special-purpose endpoints |
US20110302220A1 (en) * | 2010-06-08 | 2011-12-08 | Albert Marcella | Sql processing for data conversion |
US20130132610A1 (en) * | 2011-11-17 | 2013-05-23 | Samsung Electronics Co., Ltd. | System and method for synchronizing calendar information |
CN102523294A (en) * | 2011-12-19 | 2012-06-27 | 中山爱科数字科技股份有限公司 | A computing resource allocation device applied to a distributed computing environment |
US8675860B2 (en) | 2012-02-16 | 2014-03-18 | Avaya Inc. | Training optimizer for contact center agents |
US9262371B2 (en) * | 2012-09-29 | 2016-02-16 | Siemens Industry, Inc. | System for monitoring multiple building automation systems |
US20140095654A1 (en) * | 2012-09-29 | 2014-04-03 | Siemens Industry, Inc. | System for Monitoring Multiple Building Automation Systems |
CN111339128A (en) * | 2018-12-18 | 2020-06-26 | 北京嘀嘀无限科技发展有限公司 | Data acquisition method and device, electronic equipment and storage medium |
US12242599B1 (en) | 2024-09-27 | 2025-03-04 | strongDM, Inc. | Fine-grained security policy enforcement for applications |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20030093465A1 (en) | Management strategies for internationalization in a distributed computer environment | |
US7603403B2 (en) | Localization in distributed computer environments | |
Bernstein | Middleware: a model for distributed system services | |
US7340714B2 (en) | System and method for using web services with an enterprise system | |
US7721283B2 (en) | Deploying a variety of containers in a Java 2 enterprise edition-based architecture | |
US6978461B2 (en) | System and method for accessing functionality of a backend system from an application server | |
US6697849B1 (en) | System and method for caching JavaServer Pages™ responses | |
US6859834B1 (en) | System and method for enabling application server request failover | |
US6845503B1 (en) | System and method for enabling atomic class loading in an application server environment | |
US6687831B1 (en) | Method and apparatus for multiple security service enablement in a data processing system | |
EP1049306A2 (en) | Method and system of connection management | |
US6473748B1 (en) | System for implementing rules | |
KR100684680B1 (en) | Scalable distributed enterprise application integration system | |
US20050216880A1 (en) | Automatic system for updating data | |
US20020078000A1 (en) | Method and apparatus for locating inter-enterprise resources using text-based strings | |
US20050223392A1 (en) | Method and system for integration of software applications | |
Merz et al. | Using mobile agents to support interorganizational workflow management | |
US20030140115A1 (en) | System and method for using virtual directories to service URL requests in application servers | |
US20040103114A1 (en) | System and method for accessing objects in a platform dependent environment from a platform independent environment | |
WO2001025917A2 (en) | Environment service architectures for netcentric computing systems | |
US20040093587A1 (en) | System and method for accessing activex objects in a platform dependent environment from objects in a platform independent environment | |
WO1999040519A1 (en) | Scalable distributed network controller | |
US6721776B1 (en) | Generic DCOM server | |
US6643679B1 (en) | WebTx gateway preprocessing hook | |
WO2003044661A1 (en) | System and method for implementing a service adapter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BANERJEE, DEBASISH;FREY, JEFFREY ALAN;HIGH, ROBERT HOWARD, JR.;AND OTHERS;REEL/FRAME:012575/0324;SIGNING DATES FROM 20011012 TO 20011214 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |