CIS110-Distributed and Parallel Computing Technologies
Question 2
-
Features of modern programming languages used in parallel programming
The following are the features that can be used in the case of parallel programming;
Simplicity – it enumerates the language which is used for programming must be clear and simple in all aspects which would pave way for understand and maintain in an easier way. The simplicity could be maintained as it is a learning and application and it also ensured that there cannot be any compromises in its functions.
Naturalness –when the language is used it could be more natural with respect to the area for which it has been designed. It should use wisely the operators, structures and syntax in an efficient manner.
Abstraction –it states that the objective of using complicated structures or operations even when some of the details are excluded could create an impact in the case of writing.
Efficiency –it should be maintained well when it is translated and executed and instigates that it could not take much of the memory space and time.
Structuring –there should be proper structuring in this programming when writing codes according to the structured programming concepts to avoid any errors.
Compactness – this feature enables the expression of the operations concisely which does not require writing many details.
-
Problems in the program and solution
The class thread is used in the programming of the website and it can be considered as the sequence of instruction that could be executed concurrently with the other sequences in the case of multithreading environments when it is bound to sharing the same address space. The thread object which is initialized is represented as an active thread of execution.
However, the program also makes use of function lock in it which could possibly lock all the objects which have been passed as arguments, blocking the calling thread if necessary. The function locks the objects using an unspecified sequence of calls to their members. Henceforth, it is noted that there is some problem which has been aroused in the system which makes the user interface unresponsive.
It is a must to resolve this issue as it could have locked certain necessary things which could be useful in running the interface successfully. It could be avoided when the program is rewritten which is causing this problem. It is certain that the use of function lock would have an impact on the program.
It could be resolved by means of unlocking the function using the necessary functions. Hence the unlock function is used in the thread which could ensure all the arguments which have been locked on return. The use of unlocking will be releasing the ownership over any functions which is used for the user interface. By means of rewriting the program with the unlock function, the problem will be rectified without leading to any consequences in the future.
However, this change would make the user interface free from unresponsive and also functions properly.
Question 3
-
Proposal of Cloud-native solution
As per the case, it is noted that there was found to have certain limits in the case of using the Amazon elastic Kubernetes service instance. It is stated that there should be a solution that could resolve the pertaining issue when the content management system is reaching its limits. Hence it is proposed to use microservices architecture as the cloud naive solution for the system.
The use of microservices would possibly increase the scalability of the services which is processed in the system. Hence, the system would make use of microservices architecture solution in order to avoid complete shut down in the future. One such microservices solution is Citrix cloud naïve solution which facilitates a cloud-native approach to the system with which it will be integrated.
The Citrix naïve cloud solution will improve the benefits of existing Kubernetes instances in the current content management system. It is proposed to integrate the Citrix cloud naïve solution which is based on the microservices architecture will help in improving the issues related to the limits and it would not make the system shut down in future.
-
cloud-native solution
Citrix cloud naïve solution will be of great help in addressing the challenges which are encountered in the Kubernetes environment. It could be used to leverage advanced traffic management, observability and comprehensive security features which will be enhancing reliability and security. It can be useful in obtaining complete visibility with respect to the application traffic in the Kubernetes environment.
Fig: Citrix cloud architecture
Citrix Cloud is a workspace management platform that helps in case of design, delivering and managing virtual desktops and applications and also other services associated with it. Those who use this cloud would be able to deploy and manage workloads from the public cloud, private cloud, on-premises hardware and sometimes it can be used by means of combing those aspects.
The Citrix cloud connector would tie the platform into Microsoft active directory and enables to configure which users can access which applications and data based on their specific locations. Citrix Cloud offers the following services like virtual apps and desktops, endpoint management, gateway, application delivery management, Web app firewall, ADC VPX, content collaboration, access control, analytics, app layering, intelligent traffic management, secure browser and workspace environment management.
The Citrix virtual apps and desktops architecture is divided into several layers. All the layers flow together to create a complete, end-to-end solution for an organization. The layers found in this architecture is the user layer, access layer, resource layer, control layer, platform layer and operations layer. The resource location of Citrix cloud is making use of certain resources and it is depended on which Citrix cloud service is used by the customer.
The resources are active directory domains, Citrix ADC appliances, hypervisors, virtual delivery agents, storefront servers and Citrix cloud connectors. The cloud connector is an essential component and it serves as a channel for communication between the Citrix cloud and resource locations. Active directory is used for the authentication and authorization with the Citrix cloud.
A virtual delivery agent (VDA) is either a physical machine or a virtual one that delivers applications and desktops to users and the VDA manages the connection between the user and machine. The delivery controller is a central control layer that would be managed by the Citrix on Citrix cloud. Storefront is an interface for users to access virtual apps and desktops from anywhere with multiple devices.