Skip to main content
Log in

Demand-driven publish/subscribe in mobile environments

  • Published:
Wireless Networks Aims and scope Submit manuscript

Abstract

We propose a novel routing protocol, Self-Balancing Supply/Demand (SBSD), for Publish/Subscribe in mobile ad hoc environments. SBSD is a controlled flooding that reduces network congestion by constraining how far subscriptions replicate and how many times nodes broadcast them. SBSD ranks subscriptions by a utility function. This function matches the supply of publications with the recent demand for them; more popular subscriptions are replicated farther and their replicas are retained longer. SBSD is therefore demand-driven, as more popular subscriptions are more likely to receive their matching publications and receive them sooner. We show that SBSD is scalable; routing distance is independent of network size. SBSD’s performance is examined under random mobility, under challenging conditions including high node mobility and broadcast failure rates.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14

Similar content being viewed by others

References

  1. Aissani, M., Fenouche, M., Sadour, H., & Mellouk, A. (2007). Optimizations and performance study of the dynamic source routing protocol, ICNS’07.

  2. Akyildiz, I., & Wang, X. (2005). A survey on wireless mesh networks. IEEE Communications Magazine, 43(9), s23–s30.

    Article  Google Scholar 

  3. Baldoni, R., Beraldi, R., Cugola, G., Migliavacca, M., & Querzoni, L. (2005). Structure-less content-based routing in mobile ad hoc networks. In Proceedings of the IEEE International conference on pervasive services, IEEE Computer Society Press (pp. 37–46), July.

  4. Baldoni, R., Querzoni, L., & Virgilitto, A. (2005). Distributed event routing in publish/subscribe communication systems: A survey, Technical Report, Dipartimento di Informatica i Sistemistica, Universit di Roma “La Sapienza”.

  5. Barr, R., Haas, Z., & van Renesse, R. (2005). JiST: An efficient approach to simulation using virtual machines. Software Practice & Experience, 35(6), 539–576.

    Article  MATH  Google Scholar 

  6. Caporuscio, M., Carzaniga, A., & Wolf, A. (2003). Design and evaluation of a support service for mobile, wireless publish/subscribe applications. Technical report CU-CS-944-03, Department of Computer Science, University of Colorado, January.

  7. Carzaniga, A., Rosenblum D., & Wolf A. (2000) Achieving scalability and expressiveness in an internet-scale event notification system. In Proceedings of 19th Symposium on Principles of Distributed Computing (pp. 219–227).

  8. Carzaniga, A., Rosenblum, D., & Wolf, A. (2001). Design and evaluation of a wide-area event notification service. ACM Transactions on Computer Systems, 19(3), 332–383.

    Article  Google Scholar 

  9. Chakraborty, D., Chakraborty, A., Yesha, Y., & Finin, T. (2006). Toward distributed service discovery in pervasive computing environments. IEEE Transactions on Mobile Computing, 5(2), 97–112.

    Article  Google Scholar 

  10. Chen, Y. & Schwan, K. (2005). Opportunistic overlays: Efficient content delivery in mobile ad hoc networks. In Proceedings of the 6th ACM/IFIP/USENIX internatianal middleware conference (Middleware 2005), November.

  11. Costa, P., Picco, G., & Rosetto, S. (2005). Publish-subscribe on sensor networks: A semi-probabilistic approach. In The 2nd IEEE International conference on mobile ad-hoc and sensor systems (MASS05), Washington DC, USA, November.

  12. Cugola, G. & Jacobsen, H. (2002). Using publish/subscribe middleware for mobile systems. ACM SIGMOBILE mobile computing and communications review (MC2R), (Vol. 6, No. 4, pp. 25–33), ACM Press, New York, NY, USA, October.

  13. Datta, A., Quarteroni, S., & Aberer, K. (2004) Autonomous gossiping: A self-organizing epidemic algorithm for selective information dissemination in mobile ad-hoc networks. In International conference on semantics of a networked world (IC-SNW’04), Maison des Polytechniciens, Paris, France (pp. 17–19).

  14. Diao, Y., Rizvi, S., & Franklin, M. J. (2004) Towards an internet-scale XML dissemination service. In Proceedings 30th international conference on very large data bases, Toronto, Canada.

  15. Eugster, P. T., Felber, P. A., Guerraoui, R., & Kermarrec, A.-M. (2003). The many faces of publish/subscribe. ACM Computing Surveys, 35(2), 114–131.

    Article  Google Scholar 

  16. Eugster, P. T., Guerraoui, R., Kermarrec, A.-M., & Massoulie, L. (2004). Epidemic information dissemination in distributed systems. IEEE Computer, 37(5), 60–67.

    Google Scholar 

  17. Feeney, L. M. (1999). A taxonomy for routing protocols in mobile ad hoc networks. Swedish Institute of Computer Science Technical Report T99/07, October.

  18. Fiege, L, Gärtner, C., Kasten, O., & Zeidler, A. (2003). Supporting mobility in content-based publish/subscribe middleware. In Proceedings of 2003 ACM/IFIP/USENIX international conference on middleware.

  19. Franklin, M. & Zdonik, S. (1997). A framework for scalable dissemination-based systems. In Proceedings of OOPSLA’97 (pp. 94–105), October.

  20. Härri, J., Filali, F., & Bonnet, C. (2006). On meaningful parameters for routing in VANETs urban environments under realistic mobility patterns. In 1st IEEE Workshop on Automotive Networking and Applications, San Francisco, CA, December.

  21. Hethcote, H. (2000). The mathematics of infectious diseases. SIAM Review, 42(4), 599–653.

    Article  MATH  MathSciNet  Google Scholar 

  22. Huang, Q., Lu, C., & Gruia-Catalin, R. (2004). Design and analysis of spatiotemporal multicast protocols for wireless sensor networks. Telecommunication Systems, 26(2), 129–160.

    Article  Google Scholar 

  23. Huang, Y. & Garcia-Molina, H. (2001) Publish/subscribe in a mobile environment. In Proceedings of MobiDE (pp. 27–34).

  24. Hubaux, J., Buttyan, L, & Capkun, S. (2001). The quest for security in mobile ad hoc networks. In Proceedings of 2nd ACM international symposium on mobile ad hoc networking and computing (pp. 146–155).

  25. Kephart, J. & White, S. (1991). Directed-graph epidemiological models of computer viruses. In Proceedings of the IEEE cmputer society symposium on research in security and privacy. Oakland, California (pp. 343–359).

  26. Ko, Y., & Vaidya, N. (2000). Location-Aided Routing (LAR) in mobile ad hoc networks. Wireless Networks, 6, 307–321.

    Article  MATH  Google Scholar 

  27. Lin, C., Zadorozhny, V., & Krishnamurthy, P. (2008). Grid-based access scheduling for mobile data intensive sensor networks. In Proceedings of the 9th international conference on mobile data management (MDM’08), Beijing, China, April.

  28. Linnenbank, G., Venkataram, P., Havinga, P., Mullender, S., & Smit, G. (1996). R-TDMA: A dynamic multiple access protocol using bandwidth on-demand and priorities. 3rd Mobile multimedia communications (pp. 173–180).

  29. Lundquist, D. & Ouksel, A. (2007). An efficient demand-driven and density-controlled publish/subscribe protocol for mobile environments. In Inaugural international conference on distributed event-based systems (DEBS 2007), Toronto, Canada, June.

  30. Lundquist, D. & Ouksel, A. (2008). Dynamic subscription permission: Extending the depth of demand-controlled flooding. In Proceedings of 2008 IEEE Asia-Pacific services computing conference (APSCC 2008), Yilan, Taiwan, December.

  31. Luo, J., Eugster, P. T., & Hubaux, J.-P. (2003). Route-driven gossip: Probabilistic reliable multicast in ad-hoc networks. In Proceedings of IEEE INFOCOM, San Francisco, CA (pp. 2229–2239).

  32. Luo, Y., Wolfson, O., & Xu, B. (2007). A spatio-temporal approach to selective data dissemination in mobile peer-to-peer networks, ICWMC ‘07, March.

  33. Meier, R. & Cahill, V. (2002). STEAM: Event-based middleware for wireless ad hoc networks. In Proceedings of the 1st international workshop on distributed event-based systems (DEBS ‘02), Vienna, Austria, July.

  34. Motani, M., Srinivasan, V., & Nuggehalli, P. (2005). PeopleNet: Engineering a wireless social network. In Proceedings of MobiCom 2005 (pp. 243–257). Cologne, Germany.

  35. Murugappan, A., & Liu, L. (2007). A spatiotemporal placement model for caching location dependent queries. Philadelphia, PA: MobiQuitous 2007.

    Google Scholar 

  36. Naumov, V., & Gross, T. (2005). Scalability of routing methods in ad hoc networks. Performance Evaluation, 62, 193–209.

    Article  Google Scholar 

  37. Ni, S., Tseng, Y., Chen, Y., & Sheu, J. (1999). The broadcast storm problem in a mobile ad hoc network. In Proceedings of the 5th ACM/IEEE international conference on mobile computing and networking (MobiCom ‘99) (pp. 151–162).

  38. Ouksel, A., Jurca, O., Podnar, I., & Aberer, K. (2006). Efficient probablistic subsumption checking for content-based publish/subscribe systems. In ACM/IFIP/USENIX 7th international middleware conference, Melbourne, December.

  39. Ouksel, A. M. & Khokhar, A. A. (2007). Reliable information dissemination and resource discovery in mobile environments. NSF Grant.

  40. Papadimitratos, P. & Haas, Z. (2002). secure routing for mobile ad hoc networks. In Proceedings of SCS communication networks and distributed systems modeling and simulation conference (CNDS 2002).

  41. Royer, E., Melliar-Smith, P., & Moser, L. (2001). An analysis of the optimum node density for ad hoc mobile networks. In Proceedings of the IEEE international conference on communications (pp. 857–861). Helsinki, Finland, June.

  42. Sasson, Y., Cavin, D., & Schiper, A. (2003). Probabilistic broadcast for flooding in wireless mobile ad hoc networks. In Proceedings of IEEE WCNC’03 (pp. 1124–1130).

  43. Tran, D., & Raghavendra, H. (2006). Congestion adaptive routing in mobile ad hoc networks. IEEE transactions on parallel and distributed systems, 17(11), 1294–1305.

    Article  Google Scholar 

  44. Van de Laar, F. & Chaudron, M. (2002). A dynamic upgrade mechanism based on publish/subscribe interaction. In Proceedings of 26th COMPSAC (pp. 1134–1137).

  45. Zaharia, M., & Keshav, S. (2008). Gossip-based search selection in hybrid peer-to-peer networks. Concurrency and Computation: Practice and Experience, 20(2), 139–156.

    Article  Google Scholar 

  46. Zapata, M. & Asokan, N. (2002). Securing ad hoc routing protocols. In Proceedings Of 1st ACM workshop on wireless security (pp. 1–10).

  47. Zhong, M., Shen, K., & Seiferas, J. (2005). Non-Uniform Membership Management in Peer-to-Peer Networks. In Proceedings of 24th InfoCom (pp. 1151–1161).

  48. Zorzi, M. & Tomba, L. (1994). A comparison of CDMA, TDMA, and slotted aloha multiple access schemes in cellular mobile radio systems. PIMRC ‘94.

Download references

Acknowledgments

This paper has been supported by NSF grants SGER-743331, CNS-0910998, and DGE-0549489.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Doug Lundquist.

Appendices

Appendices

1.1 Appendix A: The SBSD algorithm

For a subscription s matching a publication p and two brokers B and B′, this algorithm describes processing at B′ for the broadcast of s from B to B′. In this presentation of the algorithm, we assume the only publication matching s is p but that i versions of p (p 0, p 1,…, p i , with p i being the most recent) have been published and may be present in the network. Details not associated with the broadcast itself, i.e., queuing operations, are omitted.

SBSD Algorithm at broker B′ :

if(pB′)//B′ publishes p

 if (sB′) update  B .s (B.s);//note that here B′.s.M will already hold p i

 else if (s ∉ B′) replicate  B′.s (B.s);

  B′.s.M = p i );//s is replicated to B′ and matched to p i at B′

else if (p ∉ B′)//B′ does not publish p

 if (B.s.M = ϕ)//dissemination phase for B.s

  if (sB′) update  B′.s (B.s);

  else if (s ∉ B′) replicate  B′.s (B.s);

 else if (B.s.M ≠ ϕ)//discovery phase for B.s

  if (sB′) update  B′.s (B.s);

  else if (s ∉ B′)//no action

End_SBSD.

*replicate  B′.s(B.s): B′.s = B.s; B′.s.h = B.s.h + 1;

*update  B′.s(B.s): if (B′.s.M = ϕ) B′.s.M = B.s.M;

else if ((B′.s.M = p j and B.s.M = p k ) and (j < k)) B′.s.M = p k; //B′ takes the more recent version

if ((B′.s.DB.s.D) ≠ B.s.Dand(B.s.h > B′.s.h))

B′.s.h = B.s.h + 1 and B′.s.D = (B′.s.D ∪B.s.D);//cascading to B′.s.f, B′.s.a, and B′.s.u

1.2 Appendix B: Proof of theorem 1

Proof Consider a subscription s, matching only a publication p of which, as in Appendix A, i versions may exist. For any two brokers B and B′, there are six possible cases for the broadcast of B.s to B′. We first consider the two cases where B′ is a publisher for p:

[case 1]: B′ has s, which will already be matched to p i . B.s and B′.s may have different known_demand sets; e.g., B may have recently posted an instance of s. B′.s.D is updated by inserting any instances of s in B.s.D it does not already contain. If B′.s.D changes, B′.s.f, B′.s.a, and B′.s.u are updated and if B.s.h < B′.s.h then B′.s.h = B.s.h + 1. B′ also updates its B′.s.M field to hold the most recent version of p (if any) in (B′.s.MB.s.M).

[case 2]: B′ does not have s. In this case, B.s is replicated to B′.s and p i is inserted into B′.s.M. Note that B.s is replicated to B′ even if B.s is matched. This is an exception to our rule that matched subscriptions do not replicate; it is necessary to queue B′.s for broadcasting in case B′ has published a newer version of p (or will do so shortly).

If B′ is not a publisher for p, we must separately consider the dissemination and discovery phases of s. In dissemination, B.s.M = ϕ. There are two cases here:

[case 3]: B′ has s. B′.s.D is updated by inserting any instances of s in B.s.D it does not already contain. If B′.s.D changes, B′.s.f, B′.s.a, and B.s.u are updated and, if B.s.h < B′.s.h then B′.s.h = B.s.h + 1. B′ also updates its B′.s.M field (which has no effect since B.s is unmatched).

[case 4]: B′ does not have s; B.s is replicated to B′.

In the discovery phase, B.s has been matched to p j , j ≤ i. This phase also has two cases:

[case 5]: B′ has s. B′.s.D is updated by inserting any instances of s in B.s.D it does not already contain. If B′.s.D changes, B′.s.f, B′.s.a, and B.s.u are updated and if B.s.h < B′.s.h then B′.s.h = B.s.h + 1. B′.s.M takes the most recent version of p (if any) in (B′.s.MB.s.M).

[case 6]: B′ does not have s; B′ does nothing.

All possible cases of interaction between brokers B and B′ have been examined and are captured correctly by the SBSD algorithm. Therefore, the algorithm is complete.□

1.3 Appendix C: Changes to next

The following cases are based on a broker B broadcasting a subscription s to a broker B′. The decision to change next depends on the states of the received and [any] stored replicas of subscription s.

  • [case 1]: B.s is matched; B′ does not hold s. B′ does not insert s into its queue.

  • [case 2]: B.s is unmatched; B′ does not hold s. B′ inserts s into its queue with next = 2.

  • [case 3]: B.s is matched; B′.s is unmatched. B′.s is updated and assigned next = 1.

  • [case 4]: B.s is matched; B′.s is matched. B′.s is updated but no changes occur to its associated next field.

  • [case 5]: B.s is unmatched; B′.s is matched. If B.s.D ≠ B′.s.D, B′.s has its associated next field set to 1; otherwise, it is left unchanged.

  • [case 6]: B.s is unmatched; B′.s is unmatched. If B.s.D ≠ B′.s.D, B′.s has its associated next field set to 2; otherwise, it is left unchanged.

1.4 Appendix D: Proof of maximum replication proposition

Proposition: In a uniform network, hmax = 3q/2, where q is the active queue size, t is the time per hop, and λ is the local arrival rate, the rate at which stored subscriptions are pushed out of a broker’s active queue by new ones.

Proof With t constant, the age of a new replica s (i.e., when s is received) is t·s.h. When hops = hmax, age = t·hmax; the maximum replica age, amax, equals t·hmax. Recall our assumption that s.f is equal for all s. Then, at all brokers, the expected exponent of minimum utilityumin is:

$$ \ln (u_{\min } ) = - {\frac{{t \cdot h_{\max }^{3/2} }}{{\sqrt[3]{f}}}} $$
(2)

All subscriptions posted within hmax of a broker B will be replicated to B and inserted in B′s active queue. Consider a new replica s reaching a broker B with age = a, hops = h, and frequency = f. B will hold s until B.s.u is less than umin. Once B queues s, s.a will increase while s.h will not. Let Δa be the time B holds s before s becomes inactive. Since the ln(B.s.u) when B.s.age = (a + Δa) equals ln(umin), Δa can be found by solving the equation:

$$ \ln (u_{\min } ) = - \left( {{\frac{\sqrt h \cdot (t \cdot h + \Updelta a)}{{\sqrt[3]{f}}}}} \right) = - {\frac{\sqrt h }{{\sqrt[3]{f}}}}\;\left( {t \cdot h + \Updelta a} \right) $$
(3)
$$ \Updelta a = - \ln (u_{\min } )\left( {{\frac{{\sqrt[3]{f}}}{\sqrt h }}} \right) - t \cdot h $$
(4)

Substituting for ln(u min ):

$$ \Updelta a = {\frac{{a_{\max } \sqrt {h_{\max } } }}{{\sqrt[3]{f}}}}\left( {{\frac{{\sqrt[3]{f}}}{\sqrt h }}} \right) - t \cdot h $$
(5)
$$ \Updelta a = {\frac{{t \cdot h_{\max }^{{{\raise0.7ex\hbox{$3$} \!\mathord{\left/ {\vphantom {3 2}}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{$2$}}}} }}{\sqrt h }} - t \cdot h $$
(6)
$$ \Updelta a = t \cdot \left( {{\frac{{h_{\max }^{{{\raise0.7ex\hbox{$3$} \!\mathord{\left/ {\vphantom {3 2}}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{$2$}}}} }}{\sqrt h }} - h} \right) $$
(7)

Subscriptions which reach B are randomly posted within a circle of h max centered on B. The average time queued for all subscriptions reaching B is the integral of Eq. 7 between 0 and h max, divided by the area of the circle of radius h max. For any h in [0, h max], the fraction of all subscriptions posted within h max, is πh divided by the constant π(h max ) 2 and their time queued is Δa (a function of h) from Eq. 7. As all active queues are normally full, the average time queued must also equal q/λ (e.g., from Little’s Formula, λE(T) = E(n)). Because Δa decreases as h increases, we take the definite integral from h max to 0. We can solve for h max from the equation:

$$ {\raise0.7ex\hbox{$q$} \!\mathord{\left/ {\vphantom {q \lambda }}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{$\lambda $}} = \left[ {\int\limits_{{h_{\max } }}^{0} {\pi \cdot h \cdot \Updelta a \, \cdot }\, dh} \right]/\left[ {\pi \cdot h_{\max }^{2} } \right] $$
(8)

Substituting for Δa and moving constants to the left of the integral symbol gives:

$$ {\raise0.7ex\hbox{$q$} \!\mathord{\left/ {\vphantom {q \lambda }}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{$\lambda $}} = \left[ {\pi \cdot t\int\limits_{{r_{\max } }}^{0} {h\left( {h_{\max }^{{{\raise0.7ex\hbox{$3$} \!\mathord{\left/ {\vphantom {3 2}}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{$2$}}}} h^{{{\raise0.7ex\hbox{${ - 1}$} \!\mathord{\left/ {\vphantom {{ - 1} 2}}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{$2$}}}} - h} \right)} dh} \right]/\left[ {\pi \cdot h_{\max }^{2} } \right] $$
(9)

This becomes:

$$ {\raise0.7ex\hbox{$q$} \!\mathord{\left/ {\vphantom {q \lambda }}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{$\lambda $}} = \left[ {\pi \cdot t\left| {_{{h_{\max } }}^{0} h\left( {h_{\max }^{{{\raise0.7ex\hbox{$3$} \!\mathord{\left/ {\vphantom {3 2}}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{$2$}}}} h^{{{\raise0.7ex\hbox{${ - 1}$} \!\mathord{\left/ {\vphantom {{ - 1} 2}}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{$2$}}}} - h} \right)} \right.dh} \right]/\left[ {\pi \cdot h_{\max }^{2} } \right] $$
(10)

Which expands to:

$$ {\raise0.7ex\hbox{$q$} \!\mathord{\left/ {\vphantom {q \lambda }}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{$\lambda $}} = \left[ {\pi \cdot t\left[ {\left( {0 - 0} \right) - \left( { - \frac{1}{3}h_{\max }^{3} - \frac{1}{3}h_{\max }^{3} } \right)} \right]} \right]/\left[ {\pi \cdot h_{\max }^{2} } \right] $$
(11)

And reduces to:

$$ {\raise0.7ex\hbox{$q$} \!\mathord{\left/ {\vphantom {q \lambda }}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{$\lambda $}} = \left[ {t \cdot \left( {\frac{2}{3}} \right)h_{\max } } \right] $$
(12)

Rearranging to find r max yields:

$$ h_{\max } = {\raise0.7ex\hbox{${3q}$} \!\mathord{\left/ {\vphantom {{3q} {2t\lambda }}}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{${2t\lambda }$}}. $$
(13)

1.5 Appendix E: Proof of broadcast rate proposition

Proposition: For a subscription with one subscriber and a utility function ln(u) = -G(a)H(h), where G(a) = a and H(h) = √h, the number of broadcasts decreases at the rate H′(h).

Proof Let us set G(a) = a and H(h) = √h. For a subscription with one subscriber, the age (as well as the frequency) of all its replicas is the same. So, since ln(u) = -G(a)H(h), ln(u) decreases at the rate H′(h).

Active time approximately follows the function 1/G′(a)H(h), which reduces to 1/H(h) (5.3.3). As active time falls by a factor k, broadcasts fall by a factor between k and log 2 k (5.3.4). To find how broadcasts change with respect to hops, we integrate the functions 1/H(h) and log 2 (1/H(h)), average their integrals, then take the derivative of the average. The average of the integrals is:

$$ \frac{1}{2}\int {\left[ \log_{2} \left( h^{ - 1/2} \right) + h^{1/2} \right]} $$
(14)
$$ \frac{1}{2}{\left[-( \log_{2}e)/2h +2 h^{1/2} \right]} $$
(15)
$$ {\frac{{ - \log_{2} e}}{4h}} + h^{1/2} $$
(16)

As h increases, the left term rapidly becomes small and the average will approach √h, which equals H(h). Their derivatives are also the same, so the change in ln(u) matches the change in the number of broadcasts. Thus, when G(a) = a and H(h) = √h, our utility function yields a ln(u) directly corresponding to how many times a replica is expected to be broadcast.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ouksel, A.M., Lundquist, D. Demand-driven publish/subscribe in mobile environments. Wireless Netw 16, 2237–2261 (2010). https://doi.org/10.1007/s11276-010-0256-0

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11276-010-0256-0

Keywords

Navigation