Trading system6571222Abstract A trading system wherein each client and a trader respectively have a metadata generating portion for describing character string type parameters of each operation with metadata including a service type and a service type context which is supplementary information of the service type individually or all together, and a metadata interpreting portion for interpreting the metadata in its entirety. The client requesting a registration, an export, or an import to the trader can include authentication information and authority information in the metadata, whereby an authentication processing portion of the trader performs an authentication processing based on the authentication information and the authority information. Claims What we claim is: Description BACKGROUND OF THE INVENTION
name_template = "<rdf:RDF>
<rdf:Description about = %1 Traderns:InstanceOf
=.backslash." CORBASvcType.backslash.">
<rdf:Description about = %2 traderns:ContextOf = %1>
</rdf:RDF>"
The generation of the service type parameter follows the flow shown in FIG. 10. This parameter is formed of the metadata description-starting character string "<rdf:RDF>" (steps S21, S22), added with "%1" and "%2" within the name_template character string substituted with the character string of the service type name and the character string of the service type context name respectively (step S23), and finally added with the character string "</rdf:RDF>" which indicates the end of metadata description (step S24). b) Super Type Parameter Generation (see FIG. 11) The fixed format character string for the super type parameter is defined as follows:
super_type_template = "
<rdf:Description about = %1 traderns:SubtypeOf = %2>
The generation of the super type parameter follows the flow shown in FIG. 11. This parameter is formed of the metadata description-starting character string "<rdf:RDF>", added with "%1" and "%2" within the super_type character string substituted with the character string of the super type name and the character string of the super type context name (steps S25, S26), and finally added with the character string "</rdf:RDF>" which indicates the end of metadata description (steps S27, S28). (3.2) Operation of Interface The existing processing can be used for the processing of the interfaces 11 and 72 of the trader 1 and the client 7, respectively. Having received the processing request, the interface transfers the parameter to each part of the processing portion 12 through the metadata interpreting portion 15. (3.3) Operation of Metadata Interpreting Portion The metadata interpreting portion 15 in the trader 1 has a dictionary shown in FIG. 12. The dictionary has a statement portion 100 and a large number of word portions 200. The word portion 200 is composed of a name space 210 and a word name 220. The statement portion 100 is a list for referring three elements 110-130 of the dictionary. In the metadata interpreting portion 15, an entry is added to the dictionary based on the metadata description received from another object. The processing flow of reading the metadata description and of constructing the dictionary is shown in FIG. 13. Firstly, after initializing the property list (PROP list) and the object list (OBJ list) (step S31), the metadata description is found to be an error if the character string does not start with "<rdf:RDF>" (step S32). Then, if the character string does not start in the form of metadata description "<rdf: Description about=", it is also found to be an error (step S33, 34). The next token is then added to the word and substituted for an ABOUTATTR (step S35). The ABOUTATTR assumes the first element 110 of the statement. The next coming token is also added to the word, and simultaneously added to the PROP list (step S36, 37). The element of the PROP list assumes the second element 120 of the statement. If the equal sign "-" is not read next, it is also found to be an error (step S38). The next token is also added to the word, and simultaneously added to the OBJ list (step S39). The element of the OBJ list assumes the third element 130 of the statement. If a further metadata description follows, it is added to the PROP list and the OBJ list without any modification. If the description is closed, the statement is generated (step S40, 42). After setting the ABOUTATTR in the first element 110 of generated statement, the elements of the PROP list and the OBJ list are set in the second element 120 and the third element 130, respectively (step S43, 44). If any element of the list still remains (step S45), further statements are generated so that the ABOUTATTR is set in the first element 110 and the elements of the PROP list and the OBJ list is set in the second and the third elements 120 and 130, respectively (step S46, S47, S43, S44). The generation of statement ends when there is no more element of the list. (3.4) Data Structure of Repository (see FIG. 14) The information on the service type context, the service type, and the service is managed within the trader 1. Such information is saved within the data structure shown in FIG. 14. The service type repository 13 saves the information on service type contexts 1311, 1312(A)-1314(C) and service types 1321(A) and 1322(C). The service type contexts and the service types form tree structures, respectively. Each of the service type contexts 1311-1314 has a reference list for its superior service type context and subordinate service type context, thereby forming the tree structure. The superior service type context of the default context 1311 is null. Each of the service type contexts 1311-1314 has a list of root service types which the context includes directly. Each of the service types 1321 and 1322 has a reference list for its super type and a reference list for its sub type, thereby forming the tree structure. The super type of the root service type 1321 in any service type context is null. Moreover, the service type saves a list of services 141-144 belonging to the service type in the service offer repository 14. Namely, the services saved in the service offer repository 14 are referenced from the lists in the services (A)-(D) saved by the service type 1321 and 1322, and saves the information on individual services. (3.5) Service Type Context Registration Processing (see FIG. 15A) 1) Interface Definition The CORBA.IDL for calling the service type context registration interface is defined as follows: void add_context( in ContextName name, in ContextName super_context, ); The service type context name whose registration is requested and the superior service type context name are stored in a name parameter and a super_context parameter, respectively to call the above-mentioned add_context operation. If the super_context parameter is a null character string, the service type context is registered as a context directly under the default context. 2) Operations FIG. 15A schematically shows the operations of the service type context-registration requesting client 2 and the trader 1 shown in FIG. 9A. A service type context-registration request processing portion 21, corresponding to the request processing portion 71 in FIG. 1A, describes the parameters of the service type context information and of the superior service type context information in the metadata form at a metadata generating portion 25, corresponding to the same portion 75 in FIG. 1A, and calls a service type context-registration interface 112, corresponding to the interface 11 in FIG. 1A, of the trader 1 through a context registration interface 22, corresponding to the interface 72 in FIG. 1A. The service type context-registration interface 112 of the trader 1 transfers the parameter to the metadata interpreting portion 15 and this metadata interpreting portion 15 interprets the parameter as a metadata. Then, a context registration processing portion 122, corresponding to the same portion 12 in FIG. 1A, generates a new context in the service type repository 13 and transforms the result into the metadata form at the metadata generating portion 16 to be returned to the client 2. (3.6) Service Type Registration Processing (see FIG. 15B) 1) Interface Definition In order to perform the service type registration with metadata description, the parameters of the above-mentioned existing interface should be described with metadata individually. When adding the service type context information to the service type name, the description of the name parameter and the super_types parameter should be in metadata description. For example, a metadata description indicating a statement "The service type C is defined in the service type context X." is given as follows:
[SvcTypeC] --- InstanceOf ---> [CORBASvcType]
[ContextX] --- ContextOf ---> [SvcTypeC]
This can be rewritten in the following character string form, which assumes the value of the name parameter:
<rdf:RDF>
<rdf:Description about="SvcTypeC" traderns:InstanceOf
="CORBASvcType">
<rdf:Description about="ContextX" traderns:ContextOf
="SvcTypeC">
</rdf:RDF>
where the RDF (Resource Description Framework) is a framework for describing network resources such as Web pages. In the RDF, the metadata description based on the first order predicate logic is formed to describe the resources. For example, a metadata description indicating a statement "The service type C is the sub type of the service types A and B." is given as follows:
[SvcTypeC] --- SubTypeOf ---> [SvcTypeA]
+-- SubTypeOf ---> [SvcTypeB]
This can be rewritten in the following character string form, which assumes the value of the super_type parameter:
<rdf:RDF>
<rdf:Description about="ServiceTypeC"
traderns:SubtypeOf="SvcTypeA">
<rdf:Description about="ServiceTypeC"
traderns:SubtypeOf="SvcTypeB">
</rdf:RDF>
Also, a metadata description indicating a statement "The property Propertyd is the property of the service type C, its type is Integer, and its mode is NORMAL." is given as follows:
Propertyd] --- PropertyOf ---> [SvcTypeC]
+-- Type ---> [Integer]
+-- Mode ---> [NORMAL]
This can be rewritten in the following character string form, which assumes the value of the props parameter:
<rdf:RDF>
<rdf:Description about="Propertyd"
traderns:PropertyOf="SvcTypeC">
<rdf:Description about="Propertyd"
traderns:Type="Integer">
<rdf:Description about="Propertyd"
traderns:Mode="NORMAL">
</rdf: RDF>
2) Operations The operations of the service type registration-requesting client 3 and the trader 1 are shown in FIG. 15B. A service type registration-request processing portion 31, corresponding to the request processing portion 71 in FIG. 1A, generates the metadata description of the service type name including the service type context information, the super type name, the property definition, and the interface name parameter at a metadata generating portion 35, corresponding to the same portion 75 in FIG. 1A, and calls a service type registration interface 113, corresponding to the interface 11 in FIG. 1A, of the trader 1 through a service type registration interface 32, corresponding to the interface 72 in FIG. 1A. The service type registration interface 113 of the trader 1 transfers the parameter to the metadata interpreting portion 15 for the interpretation thereof as a metadata. A service type registration-processing portion 123, corresponding to the same portion 12 in FIG. 1A, generates the service type in the service type repository 13 after performing the examination of a new service type by referring to the data in the interface repository 6. After the completion of the processing, the processing result is transformed into metadata at the metadata generating portion 16, and an incarnation number is returned to the client 3. (3.7) Service Export Request Processing (see FIG. 15C) 1) Interface Definition An export request processing can be defined by the CORBA.IDL as shown by 1-3 in FIG. 16A. In order to perform the service export-request processing with metadata description, the parameters of the above-mentioned CORBA.IDL interface definition should be described individually with metadata as shown by 1-3 in FIG. 16B. The type parameter indicating the service type name can be described similarly as the name parameter at the time of service type registration. For example, a metadata description indicating a statement "The type of the property propertyd is Integer and its value is 0" is given as follows:
[propertyd] --- Type ---> [Integer]
+-- Value ---> [0]
This can be rewritten in the following character string form (see FIG. 16B 3, which assumes the value of the property parameter:
<rdf:RDF>
<rdf:Description about = "propertyd"
traderns:Type = "Integer">
<rdf:Description about = "propertyd"
traderns:Value = "0">
</rdf:RDF>
A metadata description indicating a statement "The value of the object reference reference is "IOR:xxxxxxx"." is given as follows: "IOR:xxxxxxxx" - - - InstanceOf.fwdarw.[reference] This can be rewritten in the following character string form (see FIG. 16B 1, which assumes the value of the reference parameter:
<rdf:RDF>
<rdf:Description about
= "IOR:xxxxxxxx" traderns:InstanceOf = "reference">
</rdf:RDF>
2) Operations The operations of the service exporter 4 and the trader 1 are shown in FIG. 15C. A service export request processing portion 41, corresponding to the request processing portion 71 in FIG. 1A, generates metadata description of the parameter including the service type context information of the service at a metadata generating portion 45, corresponding to the same portion 75 in FIG. 1A, and calls an export interface 114, corresponding to the interface 11 in FIG. 1A, of the trader 1 through an export interface 42, corresponding to the interface 72 in FIG. 1A. The export interface 114 of the trader 1 transfers the parameter to the metadata interpreting portion 15 for the iriterpretation thereof as a metadata. Then, a service export processing portion 124, corresponding to the same portion 12 in FIG. 1A, registers a new service in the service offer repository 14 after examining the service type repository 13, transforms the processing result into metadata at the metadata generating portion 16, and returns the offer ID to the exporter 4. (3.8) Service Import Request Processing (see FIG. 15D) 1) Interface Definition In order to perform the import request processing with metadata description, the parameters of the above-mentioned existing interface should be described with metadata individually. The type parameter indicating the service type name can be described similarly as the name parameter at the time of service type registration. For example, a metadata description indicating a statement "The constraint expression is "xxxxxxxx"." is given as follows: "xxxxxxxxx" - - - InstanceOf.fwdarw.[Constraint] This can be rewritten in the following character string form, which assumes the value of the constr parameter:
<rdf:RDF>
<rdf:Description about "xxxxxxxx" traderns:instanceOf"constr">
<rdf:RDF>
Moreover, a metadata description indicating a statement "The preference is "xxxxxxxx"." is given as follows: "xxxxxxxxx" - - - InstanceOf.fwdarw.[Preference] This can be rewritten in the following character string form, which assumes the value of the pref parameter:
<rdf:RDF>
<rdf:Description about="xxxxxxxx" traderns:instanceOf="pref">
</rdf:RDF>
2) Operations The operations of the service importer 5 and the trader 1 are shown in FIG. 15D. A service import processing portion 51, corresponding to the request processing portion 71 in FIG. 1A, generates metadata description of the parameter including the service type context information of the service for the import processing at a metadata generating portion 55, corresponding to the same portion 75 in FIG. 1A, and calls an import interface 115, corresponding to the interface 11 in FIG. 1A, of the trader 1 through an import interface portion 52, corresponding to the interface 72 in FIG. 1A. The import interface 115 in the trader 1 transfers the parameter to the metadata interpreting portion 15 for the interpretation thereof as a metadata. Then, an import processing portion 125, corresponding to the same portion 12 in FIG. 1A, examines the relationship between the service types within the service type repository 13 and retrieves the service which is the object of the import processing from the service offer repository 14. The retrieval result is returned to the importer 5 after being transformed into metadata at the metadata generating portion 16. (4) Metadata Description Embodiment of the Entire Operation (see FIG. 1B) (4.1) Operation of Metadata Generating Portion The operation of metadata generating portion is similar to that per parameter as described in the above (3.1). (4.2) Operation of Interface The interface of the trader 1 is newly made. FIG. 17A shows an interface example. Namely, the CORBA.IDL definition is "string operation" and its "description" includes the metadata description of a series of operation groups. Such description is made as shown in the FIG. 17B at the metadata generating portion. (4.3) Operation of Metadata Interpreting Portion The operation of the metadata interpreting portion in the trader is similar to that per parameter as described in the above (3.3). (4.4) Data Structure of Repository For the data structure of the repository, that shown in FIG. 12 can be used. (4.5) Service Type Context Registration Processing (see FIG. 18A) 1) Interface Definition In case of describing the parameters of the service type context-registration processing request all together as metadata, the parameter in the processing request including the service type context should be described as a single metadata. For example, a metadata description indicating a statement "Register ContextY as a subordinate context of ContextX." is given as
[node1] --- InstanceOf ---> [RDF:Property]
+-- PropName ---> [traderns:InstanceOf]
+-- PropObj ---> [ContextY]
+-- value ---> [CORBASvcTypeContext]
[node1] --- add_context ---> [someone]
[contextY] --- ContextOf ---> [contextX]
This can be rewritten in the following character string form:
<rdf:RDF>
<rdf:Description>
<rdf:propObj ContextY/>
<rdf:propName traderns:InstanceOf/>
<rdf:value CORBASvcTypeContext/>
<rdf:instanceOf Property/>
<Traderns:add _context traderns:someone/>
</rdf:Description>
</rdf:Description about = "contextY"
traderns:ContextOf="contextX"/>
<rdf:RDF>
2) Operations The operations of the service type context-registration requesting client 2 and the trader 1 are shown in FIG. 18A. The service type context registration request processing portion 21 calls the metadata generating portion 25 to generate a collective metadata description of all the parameters including the service type context information and to call the common interface 17 of the trader 1 through the client interface 22. The common interface 17 of the trader 1 transfers the metadata description to the metadata interpreting portion 15 which interprets the same to examine the contents of the processing request. If the processing request is a service type context registration request, the processing is transferred to the context registration processing portion 122. After the context registration processing, the result is transformed into the metadata description at the metadata generating portion 16 and returned to the client 2. (4.6) Service Type Registration Processing (see FIG. 18B) 1) Interface Definition In case of describing the parameters of the service type-registration processing request all together as a metadata, all of the parameters in the processing request should be described as a single metadata. For example, a metadata description indicating a statement "Register SvcTypeC defined in ContextX. SvcTypeC is a sub type of SvcTypeA and B which has an Integer type property, PropertyD." is given as follows:
[node1] --- InstanceOf ---> [RDF:Property]
+-- PropName ---> [SvcTypeC]
+-- PropObj ---> [traderns:InstanceOf]
+-- value ---> [CORBASvcType]
[node1] --- add_type ---> [someone]
[contextX] --- ContextOf ---> [SvcTypeC]
[SvcTypeC] --- traderns:SubTypeOf ---> [SvcTypeA]
+-- traderns:SubTypeOf ---> [SvcTypeB]
[PropertyD] --- traderns:PropertyOf ---> [SvcTypeC]
+-- traderns:Type ---> [Integer]
+-- traderns:Mode ---> [NORMAL]
This can be rewritten in the following character string form:
<rdf:RDF>
<rdf:Description>
<rdf:propObj SvcTypeC/>
<rdf:propName traderns:InstanceOf/>
<rdf:value CORBASvcType/>
<rdf:instanceOf Property/>
<Traderns:add_type traderns:someone/>
</rdf:Description>
<rdf:Description about="ContextX"
traderns:ContextOf="SvcTypeC">
<rdf:Description about="ServiceTypeC"
traderns:SubtypeOf="SvcTypeA">
<rdf:Description about="ServiceTypeC"
traderns SubtypeOf="SvcTypeB">
<rdf:Description about="Propertyd"
traderns:PropertyOf="SvcTypeC">
<rdf:Description about="Propertyd"
traderns:Type="Integer">
<rdf:Description about="Propertyd"
traderns:Nomde="NORMAL">
</rdf:RDF>
2) Operations The operations of the service type registration requesting client 3 and the trader 1 are shown in FIG. 18B. The service type registration request processing portion 31 calls the metadata generating portion 35, generates a collective metadata description of all the parameters including the service type context information, and calls the common interface 17 of the trader 1 through the client interface 32. The common interface of the trader 1 transfers the metadata description to the metadata interpreting portion 15 for the interpretation thereof to examine the contents of the request. If the processing request is a service type registration request, the processing is transferred to the service type registration processing portion 123. After the service type registration processing, the result is transformed into metadata description at the metadata generating portion 16 and returned to the client 2. (4.7) Service Export Request Processing (see FIG. 18C) 1) Interface Definition An export request processing can be defined by the CORBA.IDL as shown in FIG. 17A. In case of describing the metadata of the service export request processing all together as a metadata, the metadata of the above-mentioned CORBA.IDL interface definition should be described all together as shown in FIG. 17B. For example, a metadata description indicating a statement "Export SvcA (ServiceA). SvcA is a service of SvcTypeC in ContextX and the value of PropertyD is 0." is given as follows:
[node1] --- propObj ---> [ServiceA]
+-- propName ---> [traderns:InstanceOf]
+-- value ---> [SvcTypeC]
+-- instanceOf ---> [Property]
+-- traderns:export ---> [someone]
[ContextX] --- traderns:contextOf ---> [SvcTypeC]
[PropertyD] --- traderns:Value ---> [0]
[ServiceA] --- ifReference ---> [ior:xxxxxxxxxxxxxx]
This can be rewritten in the following character string form:
<rdf:RDF>
<rdf:Description>
<rdf:propObj ServiceA/>
<rdf:propName traderns:InstanceOf/>
<rdf:value SvcTypeC/>
<rdf:instanceOf Property/>
<Traderns:export traderns:someone/>
</rdf:Description>
<rdf:Description about="ContextX"
traderns:ContextOf="SvcTypeC">
<rdf:Description about="PropertyD"
traderns:Value="0">
<rdf:Description about="ServiceA"
ifReference="ior:xxxxxxxxxxxx">
</rdf:RDF>
2) Operations The operations of the service exporter 4 and the trader 1 are shown in FIG. 18C. The service export processing portion 41 calls the metadata generating portion 45 to generate a collective metadata description of all the parameters including the service type context and calls the common interface 17 of the trader 1 through the client interface 42. The common interface 17 of the trader 1 transfers the character string of the metadata description to the metadata interpreting portion 15 to examine the contents of the processing request. If the processing request is a service export request, the processing is transferred to the service export processing portion 124. The processing result after the export processing is transformed into metadata description at the metadata generating portion 16 and returned to the exporter 4. (4.8) Service Import Request Processing (see FIG. 18D) 1) Interface Definition In case of describing the parameters of the service import request processing all together as a metadata, all of the parameters in the processing request should be described as a single metadata. For example, a metadata description indicating a statement "Import services of SvcTypeC in ContextX. The constraint expression is "ttxxxxxxxx" and the preference is "yyyyyy"." is given as follows:
[node1] --- propObj ---> [SvcTypeC]
+-- propName ---> [traderns:InstanceOf]
+-- value ---> [CORBASvc]
+-- instanceOf ---> [Property]
+-- traderns:query ---> [someone]
[ContextX] --- traderns:contextOf ---> [SvcTypeC]
[constr] --- Value ---> "xxxxxxxx"
[pref] --- Value ---> "yyyyyyyy"
This can be rewritten in the following character string form:
<rdf:RDF>
<rdf:Description>
<rdf:propObj SvcTypeC/>
<rdf:propName traderns:InstanceOf/>
<rdf:value CORBASvc/>
<rdf:instanceOf Property/>
<traderns:query traderns:someone/>
</rdf:Description>
<rdf:Description about="ContextX"
traderns:ContextOf="SvcTypeC">
<rdf:Description about="constr"
traderns:Value="xxx">
<rdf:Description about="pref"
traderns:Value="yyy">
</rdf:RDF>
2) Operations The operations of the service importer 5 and the trader 1 are shown in FIG. 18D. A service import processing portion 51 calls the metadata generating portion 55 to generate a collective metadata description of all the parameters including the service type context, and calls the common interface 17 of the trader 1 through the client interface 52. The common interface 17 of the trader 1 transfers the character string of the metadata description to the metadata interpreting portion to examine the contents of the processing request. If the processing request is a service import request, the processing is transferred to the import processing portion 125. The information of the imported service group is transformed into metadata description at the metadata generating portion 16 and returned to the importer 5. (5) Service Type Context Processing The service type context of the parameter in each of the above-mentioned operations is realized as follows, thereby avoiding the collision of service type names or adjusting the concepts indicated by service types. (5.1) Operation of Service Type Context Registration Processing Portion (see FIGS. 15A, 18A and 19) Having received the parameter from the metadata interpreting portion 15, the service type context registration processing portion 122 starts from the default context (step S51) to retrieve the superior service type context in which the service type context should be registered (step S52). If the designated context is not found, the processing is found to be an error. Next, the context list included in the super context is taken out (step S53) and examined if there are any duplicate names with the existing context (steps S54-S56). If there is no context with a duplicate name, a new context is made and added to the subordinate context list in the superior context (steps S57-S59). (5.2) Operation of Service Type Registration Processing Portion (see FIG. 15B, 18B and 20) Having received the parameter from the metadata interpreting portion 15, the service type registration processing portion 123 starts from the default context to retrieve the service type context in which the service type should be registered from the service type repository (steps S61-63). If there is no service type context designation, the processing is handled as the default context designation. If the designated service type context is not found, the processing is found to be an error. After obtaining the service type context of the destination of the registration, the service type context is examined for the dupication between the new service type name and the existing service type name. If the names are duplicated, the processing is found to be an error (steps S64, S65). Next, the super type is retrieved in the context. If the super type does not exist, the processing is found to be an error (step S66). After the examination, the new service type is stored in the corresponding service type context of the service type repository 13 with the processing similar to that in the registration of the existing service type (step S67). (5.3) Operation of Service Export Processing Portion (see FIGS. 15C, 18C, and 21) Having received the parameter from the metadata interpreting portion 15, the service export processing portion 124 starts from the default context to retrieve the service type context of the designated service type (steps S71-73). If there is no service type context designation, the processing is handled as the default context designation. If the designated service type context is not found, the processing is found to be an error. After finishing the retrieval of service type context, the service type is retrieved in the service type context (steps S74, S75). If the designated service type does not exist, the processing is found to be an error. After finishing the retrieval, the processing is performed in the same way as the existing service export (step S76). Namely, if the property type of the exported service coincides with the property type defined in the service type and if all of the property values required by the service type definition are given, the validity of the export is confirmed and the service is registered in an appropriate entry of the service offer repository. (5.4) Operation of Service Import Processing Portion (see FIGS. 15D, 18D and 22) Having received the parameter from the metadata interpreting portion 15, the service import processing portion 125 starts from the default context to retrieve the service type context of the designated service type (steps S81-83). If there is no service type context designation, the processing is handled as the default context designation. If the designated service type context is not found, the processing is found to be an error. After finishing the retrieval of service type context, the service type context included in the context is scanned starting from the context (step S84, S85). The service type context included in the context is recursively examined to find the service type coinciding with that import-requested among the service types in the context. Then the corresponding service type is added to the service list for saving the retrieval result. After scanning all of the service types, the service list is subjected to an ordinary import response data-generation processing (step S86). It is to be noted that the above-mentioned service type-context retrieval (S52, S63, S73, S83), the service type retrieval (S65, S66, S75), and the context scan (S85) are performed according to the procedures shown in FIGS. 23, 24, and FIG. 25, respectively. The service retrieval while scanning the contexts (S113) is executed by the flow shown in FIG. 26. The service type scanning while retrieving the service is executed by the flow shown in FIG. 27. (6) Authentication Processing If the contents of the operations are described all together as a single metadata as mentioned above, the client authentication by the trader can be performed by including the description related to the client of the trader itself within the operation. (6.1) Overall Processing Flow (see FIG. 28) As mentioned above, when performing the client authentication, the request from the client should include the authentication information indicating the authority for performing the request and the authority information indicating the authority required for accessing (i.e. adding, deleting, and the like) such information as service type contexts, service types, and the like newly made in the trader 1. Having received the request including the authentication information and the authority information, the trader extracts the information at the metadata interpreting portion and transfers the processings to each processing portion. Each processing portion examines the existence of the authentication information if the authority is set in processing objects such as the service type context, the service type, and the like. If not so, the processing is found to be an error. If the authentication information exists, it is compared with the authority information of the processing object to examine the signature. If the signature is appropriate, the processing is continued, while if not so, the processing is found to be an error. The authentication is performed by the following procedure: 1) A cryptogram is made by encrypting the character string describing the operation by using the encryption method indicated by encryption method information in the processing request from the client (step S141). In this case, the encryption is performed using the authority information in the repository 13. As for this authority information, only the authority information on the default context (1311 in FIG. 14) is preliminarily prepared in the repository 13. 2) The cryptogram is hashed using the hash method indicated by hash method information in the processing request (step S142) and compared with the authentication information from the client (step S143). This is because the authority information and the authentication information are set to have a mutually specific relationship. 3) If both information are found equal as a result of the preceding clause 2), it is found to be a request from an appropriate client so that the ordinary operation processing is performed (step S144). Namely, the information on the request of the new registration processing or the export processing is stored in the repository 13 with the authority information transferred together from the client. If both information are not equal, the operation is rejected (step S145). Namely, when generating the service type context, the service type, and the like, or modifying the information as a result of the processing, the existence of the authority information to be set as the processing object is examined. If the authority information exists, the information is set as an attribute of the processing object such as the service type context or the service type. (6.2) Service Type Context Registration-request Processing Accompanying Authentication (see FIG. 29A) 1) Interface Definition When performing the authentication, the client's signature, the encrypted algorithm information of the signature, the hashed algorithm information of the signature, and the like are transferred as the information of the service type context registration requesting client 2. For example, a statement describing such information, "A client (someone) affixes the signature "sign1" to the service type context registration. The whereabouts of the client information or of the public key is "xxxxxx", and the sign1 is encrypted by "RSAcrypto" and hashed by "MD5"." can be expressed with metadata as follows:
[someone] --- traderns:signs ---> [sign1]
+-- traderns:identified ---> [xxxxxxxxxxxx]
[sign1] --- traderns:signedWith ---> "RSAcrypto"
+-- traderns:hashedWith ---> "MD5"
Furthermore, when adding the authority information for restricting those who can register the service type context and the service type under that service type context, such information is also described with metadata. For example, a metadata description indicating a statement "The authority for registering a service type context under the service type context Y is "xx"." is given as follows: [contexty] - - - traderns:contextAuthority.fwdarw."xx" A metadata description indicating a statement "The authority for registering a service type of the service type context Y is "yy"." is given as follows: [contexty] - - - traderns:serviceTypeAuthority.fwdarw."yy" 2) Operations The operations of the service type context registration requesting client 2 and the trader 1 in the case accompanied by authentication are shown in FIG. 29A. The service type context registration request processing portion 21 calls the metadata generating portion 25 to generate a collective metadata description of all the parameters including the above-mentioned authentication information, and calls the common interface of the trader through the client interface 22. The common interface 17 of the trader 1 transfers the metadata description to the metadata interpreting portion 15 for the interpretation thereof to examine the contents of the processing request. If the processing request is a service type context registration request, the processing is transferred to the service type context registration processing portion 122. The context registration processing portion 122 takes out the authority information of the superior service type context from the service type repository 13 to perform the authentication processing together with the authentication information in the request at the authentication processing portion 18. After the success of authentication, the processing is performed similarly to the case without authentication. After the completion of processing, the authority information is set in the newly made service type context. Then, the processing result is transformed into the metadata description at the metadata generating portion 16 and returned to the client 2. (6.3) Service Type Registration Request Processing Accompanying Authentication (see FIG. 29B) 1) Interface Definition When performing the authentication, the client's signature, the encrypted algorithm information of the signature, the hashed algorithm information of the signature, and the like are transferred as the information of the service type registration requesting client. The statement describing such information is the same as mentioned above. Furthermore, when adding the authority information for restricting those who can register the sub type in this service type, such information is also described with metadata. For example, a metadata description indicating a statement "The authority for registering a sub type of the service type A is "xx"." is given as follows: [serviceTypeA] - - - traderns:subTypeAuthority.fwdarw."xx" A metadata description indicating a statement "The authority for exporting the service as service type A is "yy"." is given as follows: [serviceTypeA] - - - traderns:exportAuthority.fwdarw."yy" 2) Operations The operations of the service type registration requesting client 3 and the trader 1 in the case accompanied by authentication are shown in FIG. 29B. The service type registration request processing portion 31 calls the metadata generating portion 25, generates a collective metadata description of all the parameters including the above-mentioned authentication information, and calls the common interface of the trader through the client interface 22. The common interface 17 of the trader 1 transfers the metadata description to the metadata interpreting portion 15 for the interpretation thereof to examine the contents of the processing request. If the processing request is a service type registration request, the processing is transferred to the service type registration processing portion 123. The service type registration processing portion 123 takes out the authority information of the service type context and the authority information of the super type from the service type repository 13 to perform the authentication processing together with the authentication information in the request at the authentication processing portion 18. After the success of authentication, the processing is performed similarly to the case without authentication. After the completion of processing, the authority information is set in the newly made service type. Then, the processing result is transformed into the metadata description at the metadata generating portion 16 and returned to the client 3. (6.4) Service Export Request Processing Accompanying Authentication (see FIG. 29C) 1) Interface Definition When performing authentication, the exporter's signature, the encrypted algorithm information of the signature, the hashed algorithm information of the signature, and the like are transferred as the information of the exporter. The statement describing such information is the same as above-mentioned. Furthermore, when adding the authority information for restricting those who can import this service, such information is also described with metadata. For example, a metadata description indicating a statement "The authority for importing the service type A is "yy"." is given as follows: [contexty] - - - traderns:importAuthority.fwdarw."xx" 2) Operations The operations of the service exporter 4 and the trader 1 in the case accompanied by authentication are shown in FIG. 29C. The service export processing portion 41 calls the metadata generating portion 124, generates a collective metadata description of all the parameters including the above-mentioned authentication information, and calls the common interface 17 of the trader through the client interface 42. The common interface 17 of the trader 1 transfers the metadata description to the metadata interpreting portion 15 for the interpretation thereof to examine the contents of the processing request. If the processing request is a service export request, the processing is transferred to the service export processing portion 124. The export processing portion 124 takes out the service type authority information from the service type repository 13 to perform the authentication processing together with the authentication information in the request at the authentication processing portion 18. After the success of authentication, the processing is performed similarly to the case without authentication. After the completion of processing, an authority information is set in the newly made service in the service offer repository 14. Then, the processing result is transformed into the metadata description at the metadata generating portion 16 and returned to the service exporter 4. (6.5) Service Import Request Processing Accompanying Authentication (see FIG. 29D and E) 1) Interface Definition When the importer 5 tries to import a service which requires authentication for an import request processing, the trader 1 returns challenge information required for the authentication and an import request ID which the trader has made corresponding to the import request. Both are expressed with metadata as follows:
[op1] --- instanceOf ---> [ServiceImportOperation]
+-- operationId ---> "00000000000"
+-- importKey ---> "11111111111"
This can be rewritten in the following character string form:
<rdf:RDF>
<rdf:Description>
<traderns:instanceOf ServiceImportOperation/>
<traderns:operationId "0000000000"/>
<traderns:importKey "1111111111"/>
</rdf:RDF>
In response, the importer affixes signature to the challenge information. The signature is expressed with metadata description as follows:
[op1] --- operationId --->"00000000000"
+-- signedWith --->sign1
[sign1] --- is --->"zzzzzzzz..........zzzzzzz"
--- isEncryptedWith ---> "RSAcrypto"
--- isHashedWith ---> "MD5"
This can be rewritten in the following character string form:
<rdf:RDF>
<rdf:Description about="op1"
traderns:operationId="0000000">
<rdf:Description about="op1"
traderns:signedWith="sign1">
<rdf:Description about="sign1"
traderns:is="zzzz......zzzz"/>
<rdf:Description about="sign1"
traderns:isEncryptedWith="RSAcrypto"/>
<rdf:Description about="sign1"
traderns:isHashedWith="MD5"/>
</rdf:RDF>
2) Operations The operations of the service importer 5 and the trader 1 in the case accompanied by authentication are shown in FIG. 29D and 29E. The authentication of the importer 5 is performed according to the challenge-response procedure between the trader 1 and the importer 5 (see FIGS. 29E and 30). The service import request processing portion 51 firstly calls the metadata generating portion 55 to generate a metadata description of the import request without any authentication information, and calls the common interface 17 of the trader 1 through the client interface 52. The common interface 17 of the trader 1 transfers the metadata description to the metadata interpreting portion 15 for the interpretation thereof to examine the contents of the processing request (steps S151, S152). If the processing request is a service import request, the processing is transferred to the service import processing portion 125. The import processing portion 125 takes out the authority information of the service from the service offer repository 14 and requests the generation of the challenge information to the authentication processing portion 18 if the authentication is required (step S153). The import processing portion 125 transforms the challenge information and the import request ID which is uniquely allocated to each import request into the metadata description at the metadata generating portion 16 to be returned to the client (step S154). Having received the challenge information in metadata description, the importer 5 interprets the challenge information at the metadata interpreting portion 56. Then the import request processing portion 51 affixes the signature on the challenge information and transfers it to the trader 1. The trader 1 checks the signature on the challenge information (step S155), performs the ordinary import processing if the authority is proven (step S156), and transforms the import result into metadata form to be returned to the client 5 (step S157). Following effects are obtained by the trading system according to the present invention: [1] Avoidance of Collision of Service Type Names Restriction such that a service type name must be unique in a trader can be removed. By using context names in order to avoid collisions of service type names, the client of the trader is made to consider the object for the service and the area where the service is applicable, so that the confusion of names caused by the service type as a mere character string can be avoided. Additionally, at the time of import in case where services saved by a plurality of traders are provided to the importer as a result of the link operation, the service types are classified by the context names and the importer can designate an appropriate context name whereby the importer can obtain only the service of its desired service type. Moreover, by describing this context with the metadata description, the freedom degree of describing the service type is enhanced. [2] Client Authentication by Trader The trader receives requests such as the service type registration request and the export processing from various clients, and renews the information in the service type repository and service offer repository at every reception. By the trader having the authentication procedure, processing requests from malicious clients can be rejected. As a result, the information in the service type repository and the service offer repository can be safely kept. By performing this authentication procedure with the metadata description, an encryption algorithm for authentication such as the hash method can be switched over and used arbitrarily without any additional parameters. Furthermore, an extendibility such as a plurality of encryption algorithms used together can be provided. [3] Import Processing Authority By the trader returning the challenge information to the importer and permitting the import request processing only to the importer who properly returns the authentication information to the challenge information, the exporter is enabled to publicize the service to only a part of objects, thus preventing the use of the server object by illegal clients. By performing this authentication procedure with the metadata description, the extendibility can be secured as mentioned in the preceding clause.
|
Same subclass Same class Consider this |
||||||||||
