Abstract

This paper introduces a series of APIs and idioms in Java SE (Java Standard Edition), GreatFree, to program large-scale distributed systems from scratch without adopting any third party frameworks. When programming with GreatFree, developers are required to take care of rather than be invisible to most of the implementation issues in a distributed system. It not only strengthens developers’ skills to polish a system but also provides them with the techniques to create brand new and creative systems. However, taking care of many such issues is a heavy load because of the low-level of Java SE. To alleviate the burden to program with Java SE directly, GreatFree provides numerous APIs and idioms in Java SE to help programmers resolve indispensable distributed problems, such as communication programming, serialization, asynchronous and synchronous programming, resource management, load balancing, caching, eventing, requesting/responding, multicasting, and so forth. Additionally, as an open source tool to program, developers are able to strengthen their systems through not only adjusting GreatFree parameters but also upgrading GreatFree APIs and idioms themselves. According to the current intensive experiments, it is convenient for developers to program an ordinary or a large-scale distributed system from scratch with GreatFree.

Highlights

  • The paper exhibits an open-source programming tool, GreatFree, to assist developers to program large-scale distributed systems from scratch

  • Based on Java SE, GreatFree includes a series of APIs and idioms to ease the programming procedure

  • It contains a series of domain-specific APIs and idioms, which focus on the area of distributed systems, especially the large-scale ones whereas a generic programming language is required to deal with all of the issues in any domains

Read more

Summary

INTRODUCTION

The paper exhibits an open-source programming tool, GreatFree, to assist developers to program large-scale distributed systems from scratch. For security reasons, some systems, such as a creative one in a new environment, are forced to implement from an initial level For those considerations, a bunch of APIs and idioms, which is named GreatFree, are proposed to assist developers to program distributed systems, specially the large-scale ones. GreatFree is different from the naked generic programming languages like Java SE First of all, it contains a series of domain-specific APIs and idioms, which focus on the area of distributed systems, especially the large-scale ones whereas a generic programming language is required to deal with all of the issues in any domains. The convenience of GreatFree is that developers’ programming loads are reduced magnificently for its well-defined APIs and idioms They need to be aware of the issues of distributed systems, they are not required to implement them using Java SE.

RELATED WORK
Configuring Mature Systems
Disadvantages of Configuring Mature Systems
Design Patterns
Programming from Scratch
THE INTENTIONS OF GREATFREE
Specific Code is the Silver Bullet
Knowledge of Distributed Systems is Required
Changeable APIs and Idioms
THE GREAT FREE APIS
Remote Interactions
Resource Reusing
Concurrency Implementation and Control
GreatFree Multicasting
GreatFree Utilities
THE GREATFREE IDIOMS
Terminator
Coordinator
Server Listener
Remote Eventer
Remote Reader
Server IO
Message Producer
Server Message Dispatcher
Notification Queue
5.10. Notification Object Queue
5.11. Bound Notification Queue
5.12. Request Queue
5.13. Bound Broadcast Request Queue
5.14. Anycast Request Queue
5.15. Root Multicastor
5.16. Child Multicastor
5.17. Root Anycast Eventer
5.18. Child Anycast Eventer
5.19. Root Broadcast Reader
5.20. Child Broadcast Reader
5.21. Root Anycast Reader
5.22. Child Anycast Reader
5.23. Interactive Queue
5.24. Map Reducer
THE EXPERIMENTAL ENVIRONMENT
FUTURE WORK

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.