INTEGRATION INTEROPERABLE SOFTWARE COMPONENT INTO INTELIGENCE SOFTWARE SYSTEMS
RAMO ŠENDELJ
Army of Serbia and Montenegro,
Stjepe Šarenca 11, 85340 Herceg Novi, Montenegro
SerbiaMontenegro,
DANIJELA MILOŠEVIĆ
Technical faculty,
Čačak, Serbia
SerbiaMontenegro,
Abstract. This paper describes a new object-oriented fuzzy system model, based on interoperable software components. Implementation of software components is made in a form of Web services. Creating fuzzy services as a Web services, provide integration of fuzzy system with standard software systems. A tool for fuzzy system development, called FEST is shown, and also an example of integration of a weak fuzzy Web service with Human resources information system of VSCG (Army of Serbia and Montenegro).
Keywords: INTEROPERABLE SOFTWARE COMPONENTS, WEB SERVICE, FUZZY SYSTEM, FUZZY WEB SERVICE.
This paper aims to give an overview of modern implementation technology for development of distributed software systems in Internet environment, and to create a new object-oriented fuzzy system model, based on interoperable software components. Next, the implementation of fuzzy system components is performed in a form of Web services, and that way provide a wide fuzzy system usage. At last, we showed a way of integration of implemented fuzzy web service with an active software system that needs usage of a fuzzy logic.
1. Fuzzy system model
Fuzzy system model is based on object – oriented principle using software components for representing fuzzy knowledge and fuzzy inference mechanism. Functionality and a high degree of interoperability enhance the fuzzy system usability.
A wish to provide a distributed fuzzy system development is influenced with some extra conditions that are built into the model.
User interaction with fuzzy system is characterized by:
- Creation of fuzzy systems (fuzzy knowledge)
- Definition of input parameters
- Starting fuzzy inference mechanism
- Obtaining results
1.1. Using case diagram in fuzzy system design
Fuzzy system design assumes defining fuzzy system title, input of user information’s and design of a fuzzy knowledge.
Fuzzy system design contains the following steps [7]: creating fuzzy variables; creating fuzzy sets and modifications for each fuzzy variable; crating fuzzy rules.
All fuzzy variables are saved in fuzzy variables collection. Like that, all fuzzy system rules are kept in a fuzzy rules collection. Collections of fuzzy rules and fuzzy variables make fuzzy knowledge base of some fuzzy system.
Collections contain methods for manipulation with fuzzy variables and fuzzy rules, as well as its modification, adding and deleting.
Methods that are defined in collections of fuzzy rules and fuzzy variables have a role of mechanism for fuzzy knowledge management.
Designing tables of references that store information, which fuzzy proposition is related to which fuzzy rule, is an automated process. The content of this table is updated after every input of a new fuzzy rule or change of current fuzzy rule.
Fig.1. Use case diagramof fuzzy knowledge creation
Fuzzy system has to provide a certain conclusions, and in that way it is necessary to define the input data (initial values) that are necessary for a fuzzy inference mechanism in order to start an inference process.
The input parameters that are brought to inference mechanism are [7]:
- Fuzzy knowledge (list of fuzzy variables, list of fuzzy rules). Based on the information implied in fuzzy knowledge, inference mechanism performs the process of fuzzy inference.
- Starting values for fuzzy input variables are imported by client with direct interaction with a component formed as a fuzzy proposition, so that each input variable is given a value in a form of fuzzy set or scalar value.
- Client defines fuzzy output variables list. That list contains fuzzy variables for which inference mechanism should determine values.
- Client determines inference method which defines the way of data manipulation during the inference process.
- Fuzzy Web service contains two inference methods named Min-Max and Max-Produce.
- Defuzzyfication type. Client also determines a Defuzzyfication type which defines the way in which the result is obtained in a fuzzy inference process, in order to provide client with a scalar value of gained solution.
Fig. 2. Fuzzy inference process
Fuzzy inference process is performed on the following way [7]:
According to the inputpropositions, which are placed in the list of input parameters, the list valid fuzzy propositions is created and the inference process is started.
1.2. Inference process
In the list of valid propositions, there are some propositions with changed values, and they are used for creating the list of fuzzy rules that are ready to execute. Each fuzzy proposition contains the list of fuzzy rules and features in it. Based on that list, the list of ready fuzzy rules is loaded.
Rules are then checked and rules that fulfill a condition are executed. The execution of rules is resulted with a new fuzzy proposition.
New created fuzzy propositions are stored in a list of changed propositions. This list is updated after each executed fuzzy rule according to the principle that in a case of appearing two same fuzzy propositions, list stores only fuzzy proposition with greater value.
The content of valid proposition list is compared to the content of changed propositions list. If some fuzzy proposition from the list of changed propositions is not on the list of valid propositions, it is added to the valid proposition list together with an attribute determining that value is changed. If the value of some fuzzy proposition from the list is different than the value of the same fuzzy proposition from the list of valid proposition, than the value of fuzzy proposition in a list of valid propositions is changed.
Next step is to check whether in the list of valid propositions are any fuzzy propositions which changed its value, and if there are, the inference process is repeated, and in another case the inference process is finished.
If inference process is not finished, the process is repeated, and if it is finished the results are shown. For each output variable that client demands from fuzzy inference mechanism finds a value, the calculation is performed based on fuzzy inference process. The calculation of output value is performed on the following way [8].
For each output fuzzy variable from the list of valid propositions, are taken only those fuzzy propositions with asked fuzzy variable. With a chosen fuzzy propositions and Defuzzyfication type, a calculation of output values is performed. After that, the fuzzy proposition is created which confirms that output variable is calculated and that proposition is saved in a list of output propositions, which is brought back to client by fuzzy inference mechanism.
Fig. 3. Fuzzy inference – one process circle
1.3. Basic class diagrams
Fuzzy system which is implemented like Fuzzy System component, contain two software components: Fuzzy Knowledge and Fuzzy inference.
Fuzzy knowledge is intended for storing and manipulation of fuzzy system elements [8].
Basic elements of fuzzy knowledge are: fuzzy variables, fuzzy sets, fuzzy modifications, functions, fuzzy operators, fuzzy propositions and fuzzy rules.
Storing basic elements is provided by creating collections of fuzzy variable and fuzzy rules. Fuzzy variable collection contains fuzzy variable of the whole system. Fuzzy rule collection contains fuzzy rules of the whole system. So, fuzzy knowledge of some fuzzy system contains collection of fuzzy variables and fuzzy rules.
FuzzyVariable class represents fuzzy variable. This class has attributes: name defines variable name, minvalue and maxvalue define fuzzy variable domains, fuzzySets attribute define fuzzy set collection describing fuzzy variable values, fuzzyHedges attribute represents fuzzy variable modification collection [8].
Fig. 4. Fuzzy Variable class diagram
Class FuzzySetrepresents fuzzy sets. Fuzzy sets are defined for each variable, so that all fuzzy sets of one fuzzy variable are stored in its collection of fuzzy sets. Class FuzzySetCollection represents collection of fuzzy sets for certain fuzzy variable. In that way, relationship between FuzzySet class and FuzzySetCollection class is one to many. Attributes of FuzzySet are: functon which define function that determine fuzzy set, attribute name defines the name of a fuzzy set. Class FuzzySetCollection define methods for fuzzy set manipulation [8].
Fuzzy modifications are represented with FuzzyHedge class. Collection of fuzzy modifications of one fuzzy variable is represented by FuzzyHedgeCollection class. Attributes of FuzzyHedge class, name and type represent the name and type of fuzzy variable. Class FuzzyHedgeCollection contains methods for manipulation of fuzzy modifications of certain fuzzy variable [8].
All fuzzy variables are stored in a collection of fuzzy variables of some fuzzy system. Such collection is represented by software component FuzzyVariableCollection. This component has methods which enable fuzzy system to manipulate with fuzzy variables (changing, adding, deleting, etc.).
Fuzzy proposition is the basic knowledge element in fuzzy system, and it confirms that fuzzy variable has a certain fuzzy value. Fuzzy proposition is represented by FuzzyProposition class. This class has the following attributes: fuzzyVariable defining fuzzy variable, hedge defining modification, an attribute fuzzySetValue representing fuzzy set. Attribute degreeOfValidity determines a degree of importance of fuzzy proposition [8].
Fig. 5. Fuzzy proposition Class Diagram
Fuzzy rules contain conditional and actionable rule part. Fuzzy rules are represented by FuzzyRule class. Conditional part of the rule is contained of fuzzy proposition related by fuzzy operations. Conditional part of a rule is represented by IfPartFuzzyRule class, and fuzzy proposition lists and fuzzy operations are represented by FuzzyPropositionCollection class and FuzzyOperationCollection class.
Actionable part of a rule is represented by ThenPartFuzzyRule class. Class FuzzyRule contains attributes: name defining fuzzy rule name, ifPart defining conditional rule part, thenPart representing actionable part of a rule, significance defining a degree of a rule importance. This attribute is necessary in the inference process. Fuzzy rule contain just one conditional and one actionable rule part, so that relationship between FuzzyRule class and IfPartFuzzyRule and ThenPartFuzzyRule is one to many. Conditional and actionable rule part contains attributes operators and propositions which represent collection of propositions and operations [8].
Cardinality of relationship between IfPartFuzzyRule and ThenPartFuzzyRule classeswith FuzzyPropositinCollection and FuzzyOperatorCollection classes is one to many. Classes FuzzyPropositinCollection and FuzzyOperatorCollection contain methods for fuzzy proposition and fuzzy operator manipulation.
All fuzzy rules are stored in a fuzzy rules collection which is represented by software component FuzzyRuleCollection. This component contains necessary methods for successful manipulation (adding, deleting, updating) of all fuzzy rules in fuzzy system.
Fig. 6. Fuzzy rule Class Diagram
Fig. 7. Fuzzy inference class diagram
1.4. Fuzzy inference
Fuzzy inference mechanism, with known inputparameters and fuzzy knowledge, performs fuzzy inference process, discover values for chosen fuzzy output variables, and provide client with results.
Mechanism for fuzzy inference is separated from fuzzy knowledge, providing better characteristic of a fuzzy system. Fuzzy inference mechanism is represented with software component named FuzzyEngine. Its attributes are: inputValue defining input parameters, and outputValue attribute defines output values as result of inference process. Methods of FuzzyEngineclass perform the inference process, which is constituted of the following steps [7]:
- Creating list of valid propositions
- Creating list of rules for execution
- Performing fuzzy rules
- Comparing fuzzy rules
- Fuzzy propositions from the list of changed propositions with a list of valid propositions
- Defuzzyfication and presenting results
2. Fuzzy system implementation
Actual trend of distributed systems development assumes service-oriented architecture. Working in Internet environment, and a high degree of interoperability produce a need, that fuzzy system software components which are represented in a model, should be implemented as a Web services. This way provides designing of fuzzy system for a special need that would be available to everybody on Internet and ready to serve the users.
2.1. Web service
Web service represents any service that is available in distributed environments, like Internet (or intranet networks), that use standardized XML vocabulary for message exchange, and also not explicitly related to any operating system or programming language. Typical Web service architecture consists of tree entities [1]:
- ServiceProvider that create Web Service, and than register it at the agency for service searching, and pronounce the availability of Web service.
- Discovery Agencies register created Web service and provide the description of registered service WSDL (Web Service Description Language), to all potential Web service users.
- Service Requester, is registered user of Web service. It searches register of agency for service searching looking for desired Web service.
In service–oriented architecture (as shown on Fig.1), Service Providerpossess service designed to serve its clients. Service Provider creates WSDL service description, describing interface details, service operations, as well as, input and output messages for each operation. WSDL contains all necessary information’s for calling Web service favors. WSDL description is than presented at one or more service search agencies.
The basic intention of search agency is to register Web service information, and to provide potent ional users of Web service with information’s about possibilities of available Web service, givingfurther WSDL description of Web service.
Fig. 8. Web service architecture
Fig. 9. UDDI (Universal Description, Discovery and Integration) server scheme
The way that client use Web service, is presented on Fig. 2. Using Internet Browser client access UDDI application asking for search it about desired service. UDDI search its register, finding appropriate Web service and returns back the Web service description.
Client is analyzing Web service description and when it discovers that it provides necessary service, he produces a request. Web service process client request, and if needed he ask for a favor from another Web service. After processing the request, Web service returns the result to client.
2.2. C#.NET
Implementation of a fuzzy system software components trough Web services is performed using object – oriented programming language C#.NET. Also, the tool for fuzzy expert system development is created and named FEST (Fuzzy Expert System Tools). FEST is intended for creating, overview, modification and usage of fuzzy knowledge and calling Web service [1].
3. An example of weak Fuzzy Web service integration
An example of weak fuzzy Web service integration with KAIS military system is presented. KAIS is a Human resource automated information system used by human resource department intended for keeping track on files of all employed persons, professional officers and civilest from the army of Serbia and Montenegro. Fuzzy system for assessment on decision making about choosing candidates for duties in the army of Serbia and Montenegro.
3.1. Basic criteria for candidate assessment
The decision making process for electing appropriate candidates is based on the following criteria:
Professional skills. The assessment for professional training is performed by analyzing all relevant information related to professionalexperience of candidates.
Commanding skills. An assessment for commanding skills that performs the ChefOfficer by analyzing all relevant data for the process of commanding.
Security suitability. An assessment for security suitability performs security department, assessing security elements of each candidate and the importance of a given working place.
Moral and psychological suitability.An assessment of moral and psychological suitability for a chosen candidate is performed by Moral department, assessing all relevant elements for moral assessment.
Medical capability. Performing assessment for medical capability is done by High Military Medical commission based on systematic medicine examination.
Motivation. Each candidate provides a written description about motivating characteristics for a certain duties in the army.
3.2. Creating Fuzzy Web services
A form for entering rules is shown on figure 11.
Fig. 10. Input Fuzzy variables
Fig. 11. Entering Fuzzy rules
Creating a new fuzzy system is performed using tool for fuzzy expert system development called FEST.
Creating fuzzy variables and its fuzzy sets starts by choosing Fuzzy Variable & Set option from Fuzzy Knowledgemenu, which opens the form for defining fuzzy variables.
3.3. Candidatesassessment
Fuzzy inference process requires entering of starting values. In order to perform candidate assessment, Web service needs values for each criterion. Criteria are defined as fuzzy variables, so that its values are entered by choosing fuzzy variable and entering grade in a form of a fuzzy set or numeric grade.
Entering starting values is performed in a Fuzzy Inference form, which opens from the Fuzzy Inference menu choosing New Inference option. Figure 12 shows fuzzy inference form.
Fig. 12. Fuzzy inference form
4. Fuzzy Web service testing
Mindreef SOAPscope is system intended for Web service diagnostics. Using all available testing ways provided by Web service testing application SOAPscope, a fuzzy Web service testing is performed.
After giving the location of fuzzy WSDL, it is provided to present WSDL file of fuzzy Web service (figure 13). SOAPscope provide graphical representation of performed fuzzy Web service testing. Usage of SOAPscope testing tool, provide a specific kinds of fuzzy Web service testing that belong to first and second dimension of Web service testing.
At the end of testing and analyzing obtained results, the characteristics of created Web service in a domain of a first Web service testing dimension are the following:
- Functionality of fuzzy system is very good.
- Structure of fuzzy Web service is very well defined.
- During implementation, a great programming experience is shown, and in that way fuzzy Web service should gain the highest grade.
- Comparing different versions of fuzzy Web service, shows that all possibilities of older fuzzy Web service version are also available in the new version of fuzzy Web service.
- Testing results obtained from fuzzy Web service in a process of multi-user consumption are average.
- Data exchange of a fuzzy Web service and active software system that is integrated with, is working without any problems.