Abstract
We describe a methodology for developing and deploying distributed Java applications using a reflective middleware system called RAFDA. We illustrate the methodology by describing how it has been used to develop a peer-to-peer infrastructure, and explain the benefits relative to other techniques. The strengths of the approach are that the application logic can be designed and implemented completely independently of distribution concerns, easing the development task, and that this gives great flexibility to alter distribution decisions late in the development cycle.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Dearle, A., Kirby, G.N.C., Rebón Portillo, A.J., Walker, S.: Reflective Architecture for Distributed Applications (RAFDA) (2003), http://www-systems.dcs.st-and.ac.uk/rafda/
Rebón Portillo, Á.J., Walker, S., Kirby, G.N.C.,, D.: A Reflective Approach to Providing Flexibility in Application Distribution. In: Proc. 2nd International Workshop on Reflective and Adaptive Middleware, ACM/IFIP/USENIX International Middleware Conference (Middleware 2003), Rio de Janeiro, Brazil, pp. 95–99 (2003)
Dearle, A., Walker, S., Norcross, S., Kirby, G.N.C., McCarthy, A.: RAFDA: Middleware Supporting the Separation of Application Logic from Distribution Policy. University of St Andrews Report CS/05/3 (2005)
Walker, S.M.: RAFDA Run-Time (RRT) Beginner’s Guide v1.0. University of St Andrews Report CS/05/4 (2005)
OMG. Common Object Request Broker Architecture: Core Specification (2004)
Sun Microsystems. JavaTM Remote Method Invocation Specification (1996)
Microsoft Corporation. The Component Object Model Specification (1995)
Obermeyer, P., Hawkins, J.: Microsoft.NET Remoting: A Technical Overview. Microsoft Corporation (2001)
W3C. Web Services Architecture (2004), http://w3c.org/2002/ws/
Tilevich, E., Smaragdakis, Y.: J-Orchestra: Automatic Java Application Partitioning. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 178. Springer, Heidelberg (2002)
Spiegel, A.: Automatic Distribution of Object-Oriented Programs. PhD thesis (2002)
Caromel, D., Klauser, W., Vayssiere, J.: Towards Seamless Computing and Metacomputing in Java. Concurrency Practice and Experience 10,11-13, 1043–1061 (1998)
Fahringer, T., Jugravu, A.: JavaSymphony: A New Programming Paradigm to Control and to Synchronize Locality, Parallelism, and Load Balancing for Parallel and Distributed Computing. Concurrency and Computation: Practice and Experience 17,7-8, 1005–1025 (2002)
Lavender, R.G., Schmidt, D.: Active Object - An Object Behavioral Pattern for Concurrent Programming. In: Vlissides, J., Coplien, J., Kerth, N. (eds.) Pattern Languages of Program Design 2. Addison-Wesley, Reading (1996)
Apache Axis (2004), http://ws.apache.org/axis/
Stoica, I., Morris, R., Karger, D., Kaashoek, F., Balakrishnan, H.: Chord: A Scalable Peer-To-Peer Lookup Service for Internet Applications. In: Proc. ACM SIGCOMM 2001, San Diego, CA, USA, pp. 149–160 (2001)
JUnit, Testing Resources for Extreme Programming (2005), http://www.junit.org
AppGate Network Security. MindTerm (2005), http://www.appgate.com/products/80_MindTerm/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kirby, G.N.C., Walker, S.M., Norcross, S.J., Dearle, A. (2005). A Methodology for Developing and Deploying Distributed Applications. In: Dearle, A., Eisenbach, S. (eds) Component Deployment. CD 2005. Lecture Notes in Computer Science, vol 3798. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11590712_4
Download citation
DOI: https://doi.org/10.1007/11590712_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-30517-0
Online ISBN: 978-3-540-32281-8
eBook Packages: Computer ScienceComputer Science (R0)