Software, particularly application software, makes use of the infrastructure of a computing system. The infrastructure would include, for example, services in a distributed or network environment, operating system services, communication services and other middleware services, such as an object broker or directory. The software's run-time environment also involves infrastructure, such as the programming language in which the software is written and its run-time libraries. Restructuring software to deal with new or changing infrastructure is a major challenge.
This thesis addresses the problem of restructuring software to accommodate such changes in infrastructure. We refer to this class of problems as “infrastructure evolution”. The key characteristic of these problems is that there is a need to change the software to accommodate changes in the infrastructure without changing the functions performed by the software.
The particular problem that we focus on is transforming sequential programs into distributed ones. Our interest in this problem is motivated by the growth of distributed computing environments, particularly client-server applications, the growth of the Internet and intranets. The problem is compounded by the fact that the communications infrastructure to support the distributed operation of the program may vary depending on need and operational environment. Hence, we would like a means of changing the infrastructure of a particular program to the communication infrastructure of choice.
We address this problem by introducing a new, general methodology, Template-Assisted Program Restructuring (TAPR). This methodology is applicable not only to solving our particular restructuring problem, but also to other problems in the “infrastructure evolution” class.
The TAPR methodology relies on template specification languages, used by an “infrastructure expert”, to specify sets of templates to be applied in program restructuring. Once specified by an expert, the templates can be used to transform any number of programs. In essence, the expert does the work and the result is a restructuring machine through which any number of programs can be restructured.
We have demonstrated TAPR by creating two transformation machines for C language programs that create distributed programs using either Sun RPC or PVM as the underlying communications infrastructures.
This thesis demonstrates that restricting the scope of software restructuring to a well-defined problem domain and applying a template-based strategy is a fruitful approach that may be applicable to a wider variety of software restructuring problems.
Recommendations
Restructuring Human Infrastructure: The Impact of EHR Deployment in a Volunteer-Dependent Clinic
CSCW '15: Proceedings of the 18th ACM Conference on Computer Supported Cooperative Work & Social ComputingNon-profit organizations (NPOs) are often resource-restricted and rely on volunteers to function. As such, their human infrastructure - the social system supporting work - is different from conventional organizations, and technologies that function in a ...
Towards Sustainable Evolution for the TLS Public-Key Infrastructure
ASIACCS '18: Proceedings of the 2018 on Asia Conference on Computer and Communications SecurityMotivated by the weaknesses of today's TLS public-key infrastructure (PKI), recent studies have proposed numerous enhancements to fortify the PKI ecosystem. Deploying one particular enhancement is no panacea, since each one solves only a subset of the ...
Accountable key infrastructure (AKI): a proposal for a public-key validation infrastructure
WWW '13: Proceedings of the 22nd international conference on World Wide WebRecent trends in public-key infrastructure research explore the tradeoff between decreased trust in Certificate Authorities (CAs), resilience against attacks, communication overhead (bandwidth and latency) for setting up an SSL/TLS connection, and ...