System Architecture
System Architecture of the Language Grid
The language grid is an infrastructure where users can freely coordinate language service*1 distributed on the Internet in order to create a new composite service suitable to the users'needs. Users of the language grid are divided into two types of users: language service providers who publish their language services on the language grid, and language service users who utilize language services deployed on the language grid. Language service providers implement their own language service as a Web service with a standard interface, deploy them on the language grid, and register its WSDL*2 description and profile*3 on the language grid. Meanwhile, language service users locate the services they need on the language grid and then invoke them. At the same time, they can construct a new composite service by applying the workflow, and then deploy the services. Also, even when a language service is implemented without the standard interface*4, it can be integrated into the language grid by a third party (the wrapper implementer), who deploys a wrapper*5 to adjust its interface to the standard interface. In this case, the service entity of the language service is located outside the language grid and is invoked by the wrapper. Figure 1 shows these use cases of the language grid.

Figure 1. Use cases of the language grid.
The grid is defined as a system that coordinates resources that are not subject to centralized control,
and delivers nontrivial qualities of service. To equip the language grid with such a function,
we construct the language grid with two different types of server nodes:
one is called the language grid service node*6 and the other is called the language grid core node*7.
The language grid service node provides only language services.
On the language grid service node, not only service entities but also wrappers to standardize interfaces of external language service entities are deployed.
On the other hand, the language grid core node manages registration information of language services and coordinates language services.
To construct a network consisting of two types of language grid nodes, we created the system architecture shown in Figure2. The system consists of three components; language grid core node, language grid service node, and language grid client.

Figure 2. System architecture of the language grid.
Language Grid Core Node
Language grid core node consists of three functions, "Language service registration/deployment function," "Language service search function," and "Composite service execution function," and two repositories, "Language service information repository," and "Workflow repository". All functions are provided as Web services so that users can invoke them using standard, open, general-purpose protocols and interfaces.
Language service registration/deployment function:
This function stores the WSDL description and the profile of a language service from a language service provider in language service information repository. A language service whose WSDL description and profile are stored in the repository is available to language service users. Workflows described by language service users can be deployed on the language grid as composite services. Since we adopt BPEL as the workflow description language, which is becoming a de facto standard in the web service composition domain, the coordination workflow of a language service described by existing BPEL editor tools can be deployed on the language grid core node.
Language service search function:
This function locates language services that will satisfy the user's need among those registered on the language grid. Specifically, it provides search by languages processable by the language services or types of language services. If there is a language service that matches the user's demand, the function returns the WSDL description and profile of the language service to the user.
Language service execution function:
This function executes anatomic service*8 and a composite service*9 registered on the language grid according to a request message from a language service user. When the request is for an atomic service, the service locator in this function locates the service node with lowest load of all nodes where the service is deployed, and invokes the service on the node. While, when the request is for a composite service, it retrieves a BPEL file to accomplish the request of the user from the workflow repository and then executes it using a workflow execution engine for composite services. The composite service execution engine invokes atomic services on the language grid service nodes or other composite services on the language grid core nodes following the workflow. These nodes are also located by the service locator.
Language service information repository:
This repository manages the WSDL descriptions and profiles of language services registered by language service registration/deployment function. The information within the repository is accessed by the language service search function in order to find the language services the user needs.
Workflow repository:
This repository manages workflows (BPEL description) deployed by language service registration/deployment function. The workflows are executed by the workflow execution engine by composite service execution function for a composite service.
Language Grid Service Node
Each language grid service node has an execution engine to invoke atomic services and a function to deploy service entities of atomic services and wrappers of external service entities. Service entities and wrappers are deployed as Web services with standard interfaces. Since the wrappers do not have service entities on the language grid service nodes, they invoke existing service entities outside the language grid. The wrappers format the result into an output message defined in the standard interface and return it to the service invoker.
Language Grid Client
The language grid client is a library to enable language service users to easily develop intercultural collaboration tools using the language grid. It provides Java API. Each function provided by the language grid core node has a matching language grid client library function. Thus all the functions of the language core node can be invoked by the language grid client library.
Glossary
| Language service*1 | Language resources (e.g. bilingual dictionary and parallel text) and language processing technology (e.g. machine translation and morphological analysis) with Web service interface. |
|---|---|
| WSDL*2 | Specification defines input/output message, network address and communication protocol of a language service for invoking it. Essential for registration of language services on the Language Grid. |
| Profile*3 | Information concerning a language service; it includes types of language services, holders of intellectual property or copyrights. Essential for registration of language services on the Language Grid. |
| Standard interface*4 | Standards of interface of language services registered on the Language Grid. They are provided by the type of the services. |
| Wrapper*5 | A program provides standard interface for the existing service entity whose interface is different from standard one. Wrapper allows existing service entity to be used as language service with standard interface. |
| Language grid service node*6 | A node only provides language services on the Language Grid. On this node a wrapper without service entity is deployed as well as service entity of language services. |
| Language grid core node*7 | A node on the Language Grid, which manages registration information, interface specification and profile of a language service and provides search function and language service composition function. On this node, workflow described in BPEL for composite language services is deployed. |
| Atomic language service*8 | Web Service that consists of a single service entity concerning a language service. |
| Composite language service*9 | Web Service that consists of several service entities concerning a language service. A language service realized by coordination of multiple language services with workflow. |









