skip to main content
10.1145/3593663.3593674acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecseeConference Proceedingsconference-collections
research-article

Teaching Distributed Programming – Revisiting the Broker Pattern

Published: 19 June 2023 Publication History

Abstract

The Broker pattern[5] had its golden era as an architectural pattern for distributed object-oriented programming in the late 1990’ies and early 2000’s and was supported by a large set of frameworks: CORBA, Java RMI,.Net remoting, gRPC, SOAP and others. However, the tooling tended to be heavy-weight and cumbersome, security issues were hard to handle, and the growth of the more lightweight REST architectural style [13, 23] caused Broker based architectures to become much less used. In this tool paper we will argue why the Broker pattern offers a number of advantages over REST in a teaching context, argue that Broker can achieve similar architectural qualities as REST, show case an open source Broker library, and report from successful teaching experiences.

References

[1]
M.R. Barbacci, R. Ellison, A.J. Lattanze, J.A. Stafford, C.B. Weinstock, and W.G Wood. 2003. Quality Attribute Workshops (QAW), third ed. (CMU/SEI-2003-TR-016). Technical Report. Software Engineering Institute.
[2]
Jakob E Bardram, Henrik Bærbak Christensen, and Klaus Marius Hansen. 2004. Architectural prototyping: An approach for grounding architectural design and learning. In Proceedings. Fourth working IEEE/IFIP conference on software architecture (WICSA 2004). IEEE, 15–24.
[3]
Lenn Bass, Paul Clements, and Rick Kazman. 2021. Software Architecture in Practice, 4th Edition. Addison-Wesley.
[4]
Andrew D Birrell and Bruce Jay Nelson. 1984. Implementing remote procedure calls. ACM Transactions on Computer Systems (TOCS) 2, 1 (1984), 39–59.
[5]
Frank Buschmann, Kevlin Henney, and Douglas C Schmidt. 2007. Pattern-Oriented Software Architecture, Volume 4: A Pattern Language for Distributed Computing. Vol. 4. John Wiley & Sons New York, NY, USA.
[6]
Henrik Bærbak Christensen. 2016. Teaching DevOps and Cloud Computing using a Cognitive Apprenticeship and Story-telling Approach. In Proceedings of the 2016 ACM conference on innovation and technology in computer science education. 174–179.
[7]
Henrik Bærbak Christensen. 2020. Flexible, Reliable, Distributed Software—Still Using Patterns and Agile Development, 2nd Edition. Leanpub. https://leanpub.com/frds.
[8]
Henrik Bærbak Christensen. 2021. FRDS.Broker Library Bitbucket Repository. https://bitbucket.org/henrikbaerbak/broker.
[9]
Henrik Bærbak Christensen. 2022. SkyCaveOpen Bitbucket Repository. https://bitbucket.org/henrikbaerbak/skycaveopen.
[10]
Henrik Bærbak Christensen. 2022. Teaching Microservice Architecture Using DevOps—An Experience Report. In Software Architecture: 16th European Conference, ECSA 2022, Prague, Czech Republic, September 19–23, 2022, Proceedings. Springer, 117–130.
[11]
Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, and Judith Stafford. 2010. Documenting Software Architectures: Views and Beyond 2nd Edition. Addison-Wesley Professional.
[12]
Michael Feathers. 2017. Clean Architecture: A Craftsman’s Guide to Software Structure and Design. Prentice Hall.
[13]
Roy T Fielding and Richard N Taylor. 2002. Principled design of the modern web architecture. ACM Transactions on Internet Technology (TOIT) 2, 2 (2002), 115–150.
[14]
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1900. Design patterns. Pearson Education Incorporated.
[15]
Martin Gudgin, Marc Hadley, Noah Mendelsohn, Jean-Jacques Moreau, Henrik Frystyk Nielsen, Anish Karmarkar, and Yves Lafon. 2003. SOAP Version 1.2.
[16]
Robert C. Martin. 2000. Principles of OOD. Published at: http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod.
[17]
J.D. Meier, Carlos Farre, Prashant Bansode, Scott Barber, and Dennis Rea. 2004. Improving.NET Application Performance and Scalability / Chapter 3. Design Guidelines for Application Performance. https://learn.microsoft.com/en-us/previous-versions/msp-n-p/ff649152(v=pandp.10).
[18]
Gerard Meszaros. 2007. xUnit Test Patterns: Refactoring Test Code. Addison-Wesley.
[19]
Michael T. Nygard. 2017. Release It! Design and Deploy Production-Ready Software. 2nd Edition. Pragmatic Bookshelf.
[20]
RabbitMQ [n. d.]. RabbitMQ—Messaging that just works. https://www.rabbitmq.com/.
[21]
Connie U. Smith and Lloyd G. Williams. 2003. More New Software Performance Antipatterns: Even More Ways to Shoot Yourself in the Foot. In Proceedings International Workshop on Software and Performance.
[22]
Steve Vinoski. 1997. CORBA: Integrating diverse applications within distributed heterogeneous environments. IEEE Communications magazine 35, 2 (1997), 46–55.
[23]
Jim Webber, Savas Parastatidis, and Ian Robinson. 2010. REST in practice: Hypermedia and systems architecture. " O’Reilly Media, Inc.".
[24]
Wikipedia. [n. d.]. Broker pattern. https://en.wikipedia.org/wiki/Broker_pattern. Accessed May 2023.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
ECSEE '23: Proceedings of the 5th European Conference on Software Engineering Education
June 2023
264 pages
ISBN:9781450399562
DOI:10.1145/3593663
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 June 2023

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

ECSEE 2023

Acceptance Rates

Overall Acceptance Rate 11 of 16 submissions, 69%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 31
    Total Downloads
  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)1
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media