# A Broker-Based Self-organizing Mechanism for Cloud-Market

Jie Xu, Jian Cao

<figure><img src="image_1.png" /></figure>

To cite this version:

Jie Xu, Jian Cao. A Broker-Based Self-organizing Mechanism for Cloud-Market. 11th IFIP International Conference on Network and Parallel Computing (NPC), Sep 2014, Ilan, Taiwan. pp.281-293, 10.1007/978-3-662-44917-2_24. hal-01403095

HAL Id: hal-01403095

https://inria.hal.science/hal-01403095

Submitted on 25 Nov 2016

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
A Broker-Based Self-Organizing Mechanism for Cloud-
Market

Jie Xu, Jian Cao*

School of Electronic Information and Electrical Engineering
Shanghai Jiao Tong University, Shanghai, 200240, China
{xujieasd, cao-jian}@sjtu.edu.cn

**Abstract.** Cloud computing becomes an increasingly popular computing paradigm which leads to an increasingly sophisticated and growing influence of the social business model for cloud computing. A robust and orderly operating mechanism is the foundation of the maturity and stability of cloud commerce market. Since the cloud commerce negotiation is a dynamic and adaptive process, an approach of self-organizing based on multi-agent systems is proposed to achieve the required macroscopic properties of locally interacting agents in cloud market. The novel establishes a three-layered self-organizing multi-agents mechanism to support cloud commerce parallel negotiation activities. Purpose of our work is simulating the mechanism to follow the trend of development in line with economic market rules between cloud consumer and cloud provider. The experimental results indicate that the multi-agents system is successful in handling the commerce negotiation and completing expected requirements.

**Keywords-** cloud computing; multi-agent systems; self-organizing

# 1 Introduction

Cloud computing [1][2] is the development of distributed computing, parallel computing and grid computing. It can be defined as [3] "a large-scale distributed computing paradigm that is driven by economies of scale, in which a pool of abstracted, virtualized, dynamically-scalable, managed computing power, storage, platforms, and services are delivered on demand to external customers over the internet." Similar with the utility service as water, gas, and electricity in daily life, cloud consumer pay service providers for their usage of cloud utility services [4]. The business model of cloud computing bears a strong resemblance to the social commercial model. Cloud consumer select from cloud provider market to find a most satisfied provider and cloud provider wish its service to be mostly accepted to obtain the maximum profit.

However, most of cloud consumers are not experienced enough to obtain the best selection from cloud market. They simply trust the quality information published by cloud provider. Another issue is that it's inconvenient for an individual to compare around from the numerous providers. Therefore, it is necessary to propose a

<footnote>* Corresponding Author</footnote>
scheduling and resource allocation mechanism for cloud services market to achieve a
stable market adaptation [5].

Holland and Miller [7] suggest studying economic systems as complex adaptive
systems which containing adaptive agents, networked. Similarly, to maintain the
stability of cloud market, we propose a broker-based self-organizing mechanism
based on multi-agents to simulate the operating mechanism of cloud market in this
novel. The mechanism enables a set of broker agents as third party services to
handling the negotiation between cloud consumers and cloud providers.

Mechanism we proposed borrows the ideology of “invisible hand [6]”, posed by
Adam Smith, which reveals that individuals only consider their own interests in
economic life. Driven by “invisible hand”, producers seek to maximize profits and
consumers pursuit to maximize utility. The broker agent is designed to obtain the
instinctive behavior of both consumers and providers. This broker-based mechanism
will keep the system changing its internal structure without explicit external command
as it is dynamically changeable. As system executing conducts, cloud market forms
differentiation and the entire system keeps in general equilibrium.

Hence, the intention of this mechanism we designed mainly involves three aspects:
1) Establish and implement a negotiation tunnel between cloud consumer and cloud
provider via broker agent.
2) Maximum to meet customer and provider needs and
devise a protocol to keep the cloud market self-organized under a healthy competition.
3) Gradually refining cloud market segmentation so that each cloud provider could
make its market positioning precisely.

The broker-based self-organizing framework and communicating stratagem will be
introduced in section 3. The detail self-organizing mechanism will be elaborated in
section 4. The research simulation and the respective results are described in section 5.
Section 6 concludes the paper.

## 2 Related Work

The research of cloud commerce model and mechanism for cloud computing have
been widely studied in recent years. In [8] authors proposed computational economy
as a metaphor for effective management of resources and application scheduling.
They suggested that market-oriented resource management is necessary to regulate
the supply and demand of cloud resources at market equilibrium, and discussed some
representative economy-based systems. In [5], authors presented a vision of 21th
century computing and described an architecture of market-oriented clouds which
contains cloud consumer, cloud provider and cloud allocator to manage cloud
resource. But both of the authors did not mention an explicit, appropriate and usable
mechanism or algorithm for cloud resource allocation.

Not many cloud commerce mechanisms have been used as a solution for scalable
cloud resource management. Existing cloud market based negotiation model such as
"auctions model" [9][10] and "recommendation model" [11], all focus on the
cooperation quality between cloud service markets and individual cloud consumer.
Author in [12][13][14] proposes a cloud commerce negotiation model based on multi-
agent systems. The negotiation model consists of provider agents and consumer
agents acting on behalf of resource providers and consumers, and a set of broker
agents coordinating the negotiation between consumer agents and provider agents.

# 3 Broker-Based Self-Organizing on Cloud Commerce

## 3.1 Broker-Based Self-Organizing Framework

Agents play a major role of negotiating, communicating and decision making between providers and consumers in loud computing model [12][13]. Cloud users can access cloud market through multi-agent system to find a sensible and optimal decision.

<figure><img src="image_3.png" /><figcaption>Fig. 1. Broker-based negotiation Framework of cloud computing</figcaption></figure>

Fig 1 demonstrates the architecture of Broker-based cloud computing. The multi-agent system consists of three portions: consumers, providers and brokers. Consumer agents and provider agents are acting to be responsible for cloud users and cloud providers from cloud market. Each cloud provider has a set of properties such as “service using price”, “virtual machine CPU” to evaluate its service quality. We define $S_i(p_1, p_2, p_3 ... p_n)$ to describe a service with its properties with each value of $p_i$ refers to the objective assessment of the corresponding property. Cloud requesters also have a set of properties to describe the demanding of cloud users, which are defined as $U_i(p_1, p_2, p_3 ... p_n)$. Broker agents play roles like intermediaries between consumer agent and provider agent. Their fundamental responsibility is matching the
properties of consumers and providers and achieves maximum benefits for both sides. Two types of many-to-many negotiation activities are handled: consumer agents negotiate with broker agents for satisfying cloud user requests and provider agents negotiate with broker agents for cloud market management and differentiation.

## 3.2 Broker Agent Properties and Characteristics

Broker agent, can be regarded as a set of service agents, which is the integrated services body of cloud services managing, takes care of coordination, mediation and communication. Broker agent is based on the conception of BDI agent [21], with beliefs, desires and intentions. Desires are goals or expectations and judgments on the state of the environment. The desire of broker agent corresponds with the desire of cloud market. Intentions refer both to an agent's commitments to its desires and its commitment to the plans selected to achieve those goals. The intentions of broker agents are matching and recommending the most appropriate cloud provider to the current user. Beliefs are facts representing what an agent believes about the world. Several properties and beliefs will be considered in that self-organizing system, both natural and artificial.

* **Transaction:** Transaction [15] reflects the total traffic of broker agents. Every request from user agents will be recorded. Once the number of such request meet some certain condition, a filtering service mechanism will begin to work. Transaction is the key point for broker agents to adjust their internal topology with provider agents.

* **Sale and Failure History:** Just like merchants count how many goods they sell to their clients in modern business, every provider agent should record the number of successful cooperation with consumers. A successful cooperation is called a sale. Provider with high sales indicates that it gains a warm welcome from its clients. In other words, it owns a high possibility to be successfully recommended to consumers. On the contrary, consumers don't always accept the recommended providers. There exists unsuccessful cooperation. The failure record can be learned by broker agent with learning mechanism to avoid the same type of unsuccessful cooperation happening again. Both success and failure record history are important indicators for agent filter and mining.

* **Satisfaction:** Consumer will score for service provider as feedback when it successfully cooperates with a provider. The satisfaction of a cloud provider is the average value of scores from consumers which is defined as:

$$ Sat_j = \frac{\sum_{i=0}^{n} s_{ij}}{n} $$

The satisfaction of a service provider reflects its popularity and quality to some extent. It also plays an important role on cloud market differentiation.
3.3 Multi-Agent Communication Mechanism

The task of multi-agent computing process can be regarded as a process to match
consumer's request with resources of cloud providers. Consumer agent, broker agent
and provider agent handles different problem respectively, and the detailed
mechanism will be discussed in Section 4.

<figure><img src="image_4.png" /><figcaption>Fig. 2. Multi-Agent communication functional processes</figcaption></figure>

* Consumer agent: represents for cloud consumer, its function mainly involves: 1) Representing cloud user's requirement into formalization. 2) Contacting some broker agents and selecting the most satisfied provider. 3) Combing a single service with corresponding broker agent's outputs and returning evolution value.

* Broker agent: a coordinator between consumer agent and provider agent, its work includes: 1) Establishing communication tunnels for both consumer agent and provider agent. 2) Matching consumer requests with managed providers and recommending the most appropriate one 3) learning and filtering from cooperation records between consumer agents and provider agents to enhance the success rate and evolution value of discovering cloud resources.

* Provider agent: administrator of a set of cloud resources. It manages the interface of cloud resources. It accepts the requests from broker agents and transforms the corresponding output to the corresponding cloud services.
Fig 2 illustrates the communication function process of multi-agent system with three stages. First of all, initial stage performs an original state of agent registration. As communication tunnel constructed, the connections between broker agents and provider agents are randomly established. Cooperation stage shows the complete procedure of how broker agents negotiate with both consumer agents and provider agents to accomplish successful collaborations between buyers and sellers. And learning stage carries out when the broker transaction reaches a certain condition. This stage is designed to classify the quality of collaboration between consumers and providers. With classification and filtering, broker agents will gain the preference of consumer groups and adjust their internal compositions for an improvement of user satisfaction and higher rate of successful cooperation.

# 4 Self-organizing Model and Algorithm

## 4.1 Consumer Model

“Consumer First”, from Marshall Field, as a marketing concept, should be traced back to the late 19's Marshall Field's department store. The concept tells us that the consumer is the principal part of commercial trading. It is very important to make an accurate definition for consumer model closer to consumer's request.

Behaviors and requirements vary from consumer to consumer. Yet there always exists a group of consumers, their interests and demands are similar to each other. For example some cloud consumers prefer “cheap” service while others are inclined to high performance. Hence the same type of consumer owns identical user preference and each type of the consumer should have a preference function to show its satisfaction of a cloud provider which we defined as preference(s):

$$ \text{Perference(s)} = \sum_{\text{where}} property_i \cdot pv_i $$

Here $pv_i$ is the weight coefficient for each property vector. The value of $pv_i$ depends on the realistic user type. When consumer receives the recommended cloud providers from broker, it will refer to its preference and choose the most satisfactory service for cooperation.

In traditional commerce, consumer always tends to cooperate with the provider once it used, but it would also like to try other provider it seldom used. We define a choose function for the probabilistic of a broker service chosen by consumer.

$$ Pro_i = \frac{1 + B\_serve_i}{N + service\_all} $$

Here $B\_serve_i$ denotes the number of cooperation between consumer agent and broker agent i. N is the number of broker agent in the multi-agent system. And
service_all is the total number of cooperation between consumer and all brokers. On the basis of the regulations we've discussed above, we proposed our consumer model running mechanism using the algorithm below:

**Algorithm 1: Consumer Model Running Mechanism**

**Sending**

1. Get user property $U_i(p_1, p_2, p_3, ..., p_n)$

2. For each Broker i

3. Calculate the chosen probability $Pro_i$

4. End for

5. Chosen_Broker[i] ← three Broker with maximum $Pro_i$ value

6. For each chosen broker i

7. Send_request(Chosen_Broker[i], request_content)

8. End for

**Receiving**

1. When receive recommendation from broker agent A

2. Calculate Perference(s)

3. If all three recommendation received

4. Chosen_Provider ← top rate Perference(s) provider

5. Cooperate(Chosen_Provider, evolution)

6. Feedback(Corresponding_Broker, evolution)

7. End if

User requirements are always changing, but the overall demand follows with certain rules for a certain type of consumer. Hence, user property in our user model is a set of uncertain vectors based on user preference.

## 4.2 Service Selection and Response Model

When customer selecting merchandise in shops, many factors are taken into consideration to find the most satisfied goods: whether the goods match his needs, whether it sells well, or what are the comments from other customers. Service selection and response model simulates the consumer psychology of customer. The function $R_{recommend}$ is defined to represents a provider's recommended probability which mainly involve three factors: matching indicator, sales indicator and satisfaction. The probability formula is defined as follows:

$$ 
\left\{ 
\begin{array}{l}
R_{recommend_i} = \alpha \cdot R_{match_i} + \beta \cdot R_{sale_i} + \gamma \cdot Sat_i \\
\\
R_{match_i} = \frac{\sum S_{p_{kj}} \times U_{pij}}{\sqrt{\sum S_{p_{kj}}^2 \times \sum U_{pij}^2}} \\
\\
R_{sale_i} = 1 - \frac{rank_i}{N_{provider}}
\end{array}
\right. 
$$

$R_{match}$ denotes the cosine similarity [16] of properties between recommended provider and target user. $R_{sale}$ indicates the rank and popularity of a provider where $N_{provider}$ denotes the total number of providers managed by broker agent. Hence, the function $R_{recommend}$ signifies the combination of the three indicators where $\alpha, \beta, \gamma$ are corresponding weight coefficients.
After broker agent receives the request from consumer agent, it firstly calculates the recommended probability of each provider agents in its managing list. Secondly it chooses the provider with the highest value and recommend to consumer and then wait for consumer's feedback. A decision threshold is very necessary to distinguish feedbacks from positive and negative examples with the response evaluation value.

## 4.3 Learning Model

A notable feature of free market is that buyers and sellers do not coerce each other, in the sense that they obtain each other's property rights without physical force. Correspondingly, our multi-agent system is designed to maintain in accordance with the market discipline. Hence, the intention for the filtering and learning mechanism mainly involve two aspects:

* Excluding service provider of poorer quality: a poor quality service provider means provider has few successful cooperation records or even seldom be made inquiries from consumers. This kind of provider does not meet the needs of cloud market. They shall be eliminated in the competition of other providers

* Establishing market position: with the increasing number of access requests from consumers, broker agent will learn to know the customer type it mainly orients and the provider service of favorable managing. That is, broker agent gains knowledge of the consumer's selection pattern. As learning mechanism conduction, a market differentiation gradually appears. It mainly performs that a certain broker major in a particular type of providers. And the total cloud market is partitioned by broker agents according to consumer preferences.

The learning mechanism contains three steps as follows:

* **Step 1, Eliminating**: broker agents first re-group the managed provider agents in a descending order according to Sail and then delete the provider services from manage-list which fall behind others by a certain percentage.

* **Step 2, Modeling**: screening all success and failure cooperation from the record and constructing a training set based on a certain machine learning method which we will talk about later.

* **Step 3, Selecting**: selecting unsaturated provider agents from cloud service market based on the training model constructed in step 2. Broker will continue searching the qualified provider until it reaches its managing limitation.

We choose ID3 decision tree [17][18] for consumer preference filtering and classification. We choose the attribute of user property as the decision tree's attribute. The information gain is defined to measure the quantitative of the worth of an attribute for a most useful choice of classifying examples. And the entropy is defined to characterize the purity of an arbitrary collection of examples. The detail definition [20] shows blow:

$$ \left\{ \begin{array}{l} Entropy(S) \equiv \sum_{i=1}^{n} -p_i \log_2 p_i \\ Gain(S, A) \equiv Entropy(S) - \sum_{v \in Values(A)} \frac{|S_v|}{|S|} Entropy(S_v) \end{array} \right. $$
# 5 Experimental Evaluation

The simulation environment of our experiment is established based on java agent Development Framework (JADE) [20]. As many performance indicators of cloud service will influence cloud consumers' choices, we consider five indicators to represent the capability of a cloud service: {service cost, service CPU, service storage, bandwidth, service response time}. Each of them is valued based on its performance level ranging from 1 to 10. Contemporary, the service property represents the interest of a group of particular person, also known as the preference of the consumer.

To evaluate the performance of our self-organizing mechanism, the expecting result of the experimental includes three fields: 1) a cloud market differentiation takes shape. 2) With the conduction of learning mechanism, success rate between consumer and provider performs a remarkable improvement. 3) As the adjustment time grows, the satisfaction feedback from consumer agent also has been significantly improved.

<figure><img src="image_5.png" /><figcaption>Fig. 3. Cloud market differentiation revolution</figcaption></figure>

Fig 3 illustrates the cloud market differentiation evolution from one set of experiment, where 20 broker agents collaborate to connect and negotiate with consumers and providers. The work division of broker agents was ambiguous at first. After about 10 adjustment steps, a clear division of labor gradually appears. That phenomenon verifies the first expectation we've talked about above.

Fig 4 and Fig 5 shows the comparison empirical result of three different strategies: self-organizing mechanism contains complete three modules (CMLM), strategy without learning mechanism (CM), no consumer and learning mechanism (NM). From the comparison, we see that both success rate and satisfaction performs a significant improvement under our mechanism with adjustment time grows, which is in full compliance with the second and the third experiment expectation. When we remove the consumer mechanism and learning mechanism, the cloud market is keeping chaos as performance of success rate and satisfaction doesn't change at all.

Note that when we only eliminate the learning mechanism, there is still an improvement for both success rate and satisfaction. In fact, consumers can find their most satisfied provider through numerous times of attempts, but the process is slowly.
Hence, we can conclude that the learning mechanism improve the efficiency of cloud market differentiation and stability.

<figure><img src="image_6.png" /><figcaption>**Fig. 4.** Success rate with/without consumer mechanism and learning mechanism</figcaption></figure>

<figure><img src="image_7.png" /><figcaption>**Fig. 5.** Satisfaction with/without consumer mechanism and learning mechanism</figcaption></figure>

<figure><img src="image_8.png" /><figcaption>**Fig. 6.** Success rate in different threshold</figcaption></figure>

<figure><img src="image_9.png" /><figcaption>**Fig. 7.** Satisfaction in different threshold</figcaption></figure>

<figure><img src="image_10.png" /><figcaption>**Fig. 8.** Success rate in different transaction</figcaption></figure>

<figure><img src="image_11.png" /><figcaption>**Fig. 9.** Satisfaction in different transaction</figcaption></figure>

Fig 6 to Fig 9 shows the empirical result of our self-organizing mechanism in different measurements. We set up two sets of variables {decision threshold and broker transaction} which we think may have influence in Algorithm performance.

Broker agents adjust their management constructions based on their average transaction number. The experimental truth is the higher of the transaction number, the more rapid increase of the success rate and satisfaction's improvement. Because a
higher transaction number indicates that consumer agents access broker agent for more times. But it doesn't mean we should choose a high value for transaction number. We always wish that the market system can achieve a stable and orderly state in a short time. Yet the high value transaction number implies more time is waste before learning and classification mechanism.

Decision threshold is a parameter to classify positive and negative examples. Apparently, the cooperation record could be easily classified into positive example set when we set up a lower decision threshold. Fig 6 and Fig 7 illustrates this point: threshold with 0.4 performances slightly better in both satisfaction and success rate. But the performance of threshold with 0.5 and 0.6 are not very different. That because there exists a satisfaction critical value. Practically, the satisfaction value always reaches a critical value in all of our experiments.

The reason for the phenomenon is caused by the criteria inconsistent between consumer accepting and broker recommending. Consumer agents choose provider agents for cooperation of most preference values. But Broker agents recommend providers mainly based on property matching as they do not know the preference of an individual agent. Note that the preference formula and the matching formula are not corresponding. We show the ideal mathematical expectation of satisfaction below:

$$E_{\text{satisfaction}} = \frac{\sum_{s \in \text{Positive}(E)} \text{preference}(s)}{|\text{Positive}(E)|} = \sum_{s \in \text{Positive}(E)} E_{s\_\text{property}_i} \cdot S_{pv_i}$$

Here Positive(E) means the set of positive example and E<sub>s_property<sub>i</sub></sub> is the mathematical expectation of consumer property<sub>i</sub>. In ideal state, consumer agents accept all recommendation from broker agents, which indicates that satisfaction is the average value of all preference values feedback from successful cooperation. And also in ideal situation, the provider recommended from broker agent exactly matches the consumer agent's request. Therefore, the feedback preference directly related to the value of consumer properties.

# 6 Conclusions and Future Work

With the tremendous growing number of web cloud service and the sharp increasing demands from cloud users, establishing an integrated, scalable and fully distributed framework and strategy of the cloud market becomes an important issue. The significance of our work is that: 1) we borrow the idea of free commercial market in modern cloud computing systems. 2) We proposed a broker-based self-organizing mechanism to simulate the progress of cloud market conduction. And the simulation experiment performs a highly stable and auto-adapt market system that both cloud consumer and cloud provider achieve a win-win development.

As a satisfaction critical value exists in our model, we will focus on the improvement of service selecting and response mechanism in our strategy in the future. To avoid the criteria inconsistent of consumer accepting mechanism and broker recommending mechanism, a more reasonable matching strategy should be taken into consideration in our future work.
## Acknowledgements:

This work is partially supported by China National Science Foundation (Granted Number 61272438), Research Funds of Science and Technology Commission of Shanghai Municipality (Granted Number 14511107702, 12511502704).

## References

1. Armbrust, M., et al. "A view of cloud computing". Communications of the ACM 53(4), 50-58 (2010)

2. A. Weiss. "Computing in the Clouds", netWorker, 11(4):16-25, (2007).

3. Twenty Experts Define Cloud Computing, http://cloudcomputing.syscon.com/.

4. I. Foster et al. "Cloud Computing and Grid Computing 360-Degree Compared", Grid Computing Environments Workshop, 1-10 (2008).

5. R. Buyya, CS Yeo, S. Venugopal, "Market-oriented cloud computing: Vision, hype, and reality for delivering it services as computingutilities", High Performance Computing and Communications, Pages 5-13(2008)

6. Invisible Hand Theory, http://www.ecocommerce101.com/invisible-hand-theory.htm

7. J.H Holland, J.H Miller, "Artificial adaptive agents in economic theory", American Economic Review, 81 (2), 365 - 370 (1991)

8. R. Buyya, D. Abramson, and S. Venugopal, "The Grid Economy". Proceedings of the IEEE, 93(3): 698-714(2005)

9. B Song, MM Hassan, EN Huh A novel Cloud market infrastructure for trading service, Computational Science and Its Applications, 44-50(2009)

10. D. Grosu and A. Das. Auction-based resource allocation protocols in grids, the 16th IASTED International Conference on Parallel and Distributed Computing and Systems, 20-27(2004).

11. SM Han, MM Hassan, CW Yoon, EN Huh, Efficient service recommendation system for cloud computing market, ICIS '09 Proceedings of the 2nd International Conference on Interaction Sciences: Information Technology, Culture and Human, 839-845(2009)

12. Sim.K.M, "Agent-Based Cloud Commerce", Industrial Engineering and Engineering Management, 717-721(2009).

13. Sim, K.M.: "A market-driven model for designing negotiation agents". Comput Intell. 18(4), 618-637 (2002)

14. Sim.K.M, "Towards Complex Negotiation for Cloud Economy," Advances in Grid and Pervasive Computing, 395-406(2010).

15. TB Klos, B Nooteboom, "Agent-based computational transaction cost economics", Journal of Economic Dynamics and Control, 503 - 526(2001)

16. P.-N. Tan, M. Steinbach & V. Kumar, "Introduction to Data Mining", Addison-Wesley, 499-501 (2005)

17. Quinlan.J.R, "induction of decision trees", Machine Learning, 1(1), 81-106(1986)

18. Quinlan.J.R, "Decision trees and multi-valued attributes" In Hayes, Michie, & Richards, Machine intelligence 11, Oxford, England: Oxford University Press, 305-318 (1988)

19. T.M.Mitchell, "Machine Learning", McGraw-Hill, 38-56(1997)

20. JADE document, http://jade.tilab.com/

21. Georgeff M, Pell B, Pollack M, et al, The Belief-Desire-Intent ion Model of Agency, Proc of the 5th Workshop on Agent Theories, Architectures, and Language, 1-10(1999).