Compilers on Cloud

DOI : 10.17577/IJERTV2IS90433

Download Full-Text PDF Cite this Publication

Text Only Version

Compilers on Cloud

Ansari Mohd. Arshad 1 , Khan Arshiya 2 , Shaikh Sana 3 , Mirza Zainab 4 1,2,3B.E Students, Department of Information Technology, M.H.Saboo Siddik College of

Engineering, Mumbai University, Mumbai, India.

4Assistant Professor, Department of Information Technology, M.H.Saboo Siddik College of Engineering, Mumbai University, Mumbai, India.

Abstract

Clouds have emerged as a computing infrastructure that enables rapid delivery of computing resources in scalable and virtualized manner. Cloud computing is delivery of computing resources as a service rather than a product, whereby shared resources, software and information are provided to computers and other devices over a network (typically the Internet).We explore the Cloud Computing area and evaluate several of its capabilities by developing a web based application for compilation of codes written in different languages like Java, C++, C# etc. by deploying the compilers of these languages on a private cloud. This application reduce the problems of portability and storage space by making use of the concept of cloud computing. Moreover, a web- based application can be used remotely throughout any network connection and it is platform independent. [1]

Keywords: Clouds, Cloud Computing, Internet, Private Cloud.

  1. Introduction

    Many distributed computing projects are conducted within large enterprises, using traditional network connections to form the distributed computing network. Other, larger, projects utilize the computers of everyday Internet users, with the computing typically taking place offline, and then uploaded via traditional consumer Internet connections. The cloud is a large group of interconnected computers, the computers are personal computers or network servers. The cloud can be public or private. The applications and data served by the cloud are available to broad group of users and cross-platform, access is via the Internet.

    Any authorized user can access their documents and applications from any computer over any Internet connection. Cloud computing introduces a major change in how we store information and run applications. Instead of running programs and data on an individual desktop computer, everything is hosted in the cloud. Cloud computing allows to access all applications and documents from anywhere in the world, freeing user from the confines of the desktop and making it easier for user.

    The National Institute of Standards and Technology (NIST) defines Cloud Computing as a model for enabling easy, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.[2] The cloud service providers (like Microsoft, Citrix, etc) provide virtual hardware and software in their datacenters based on demands from users.

    This project deals with the creation of Integrated Development Environment (IDE) for the Different languages to code, compile and run the code using the browser based IDE through the Internet and a web browser. The IDE will allow easy development and testing of applications. The users have the privilage to register on to the system & manage their profiles. A user can write Programs online & save those in their profile and manage it. The programs are then stored on the cloud can then be compiled and/or executed depending on the language chosen by the user on the front end(IDE). After the language is chosen by the user the request is forwarded to the respective compiler. Multiple users can write programs in different programming languages and also can compile and run the

    program. While the program is running user can give input in program so the program is execute and also displays the output.

  2. Technology Used

    1. .NET Framework:

      The .NET Framework is a technology that supports building and running the next generation of applications and XML Web services. The .NET Framework provides a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely. .NET Framework provides a code-execution environment that promotes safe execution of code, including code created by an unknown or semi-trusted third party. .NET Framework can also be used for Windows-based applications and Web-based applications as well. The common language runtime and class libraries, including Windows Forms, ADO.NET, and ASP.NET, combine to provide services and solutions that can be easily integrated within and across a variety of systems. The .NET Framework provides a fully managed, protected, and feature-rich application execution environment, simplified development and deployment, and seamless integration with a wide variety of languages. [3]

    2. MySQL :

      MySQL [4] is a relational database management system that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My. The SQL phrase stands for Structured Query Language. MySQL is a key part of LAMP (Linux, Apache, MySQL, PHP / Perl / Python). It is the fast- growing open source software stack. Users can use MySQL , desktop software and web applications to create and manage databases, build database structures, back up data into databases, check status of databases, and also work with data records.

      MySQL Workbench lets users manage database design & modeling, SQL development and Database administration.

      Managed MySQL cloud hosting – application

      owners do not have to install and maintain the MySQL database on their own computers, but the cloud provider hosts the database and manages it on the application owner's behalf. [5]

    3. Virtual Machine(VMware):

A virtual machine (VM) is a software implementation of a computing environment in which an operating system (OS) or program can be installed and run. The desire to run multiple operating systems was the original motivation for virtual machines. Virtual machines are separated into two major classifications, based on their use and degree of correspondence to any real machine

  1. A system virtual machine: It provides a complete system platform which supports the execution of a complete operating system (OS).Multiple OS environments can co- exist on the same computer, in strong isolation from each other.

  2. A process virtual machine: It is designed to run a single program, it means that it supports a single process. Such virtual machines are usually closely suited to one or more programming languages and built with the purpose of providing program portability and flexibility.

    VMs are created within a virtualization layer, such as a hypervisor or a virtualization platform that runs on top of a client or server operating system. This operating system is known as the host OS. The virtualization layer can be used to create many individual, isolated VM environments. [6]

  3. Related Work

    Many efforts have been made to implement online compiler and runtime environments in past few years. An Online Programming Tutors named Problets by Kumar [7] is designed as a tutoring system for students to learn Java, C++, and C# OO programming. It mainly covers Java programming and basic programming constructs. The Java Task Force (JTF) developed an online tutorial system that enables teachers and students to explore the resources provided by the Task Force in a hihly interactive style. Based on the JTF system Eric Roberts [7] proposed a software system that will make it possible to create Java Applet based interactive lecture demonstrations from PowerPoint slides. These systems did not provide online virtual Java execution runtime environment and did not support instant interaction between instructor and students.

    Fu and Qian [7] developed Automated Project Grading and Instant Feedback System for Web Based Computing. But its focus is web applications.

  4. Private Cloud

    Compiler

    Compiler

    Internal architecture of private cloud can be divided

    in three layers: tools, drivers and core. The tools VM

    Compiler

    Compiler

    has several tools for managing the cloud through its interfaces. The available API allows developers to

    create custom tools. For example, Open Nebula. VM

    One of the tool available with Open Nebula is installation of Command Line Interface (CLI), it allows administrator and user to manage

    Compiler

    Compiler

    procedures/functions of virtual environment. [8]

    VM

    The drivers has a set of modules for

    communication with specific middleware (virtual

    VMware

    S Y S T E M

    O S

    S Y S T E M

    O S

    machines). For example, VMware hypervisor. The Hypervisor is the virtualization manager installed in host machine for virtual machine management. The Virtual Manager is the component which responsible for VM management and management of the clouds resources. [8]The core of private cloud is a set of components for managing virtual machines, and storage, etc.

  5. Virtualization

    Virtualization is the creation of a virtual version of an operating system, a server, a storage device or network resources. Virtualization breaks the link between hardware and the applications that run on it. Virtualization requires the installation of a software layer that allows more than one virtual machine on the same piece of hardware. VMware runs a virtualization layer (hypervisor) between the hardware and the operating system. (see Fig. 2)

    The virtualization software being used for the proposed system is VMware Workstation as it is considered to be the most powerful machine virtualization application, enabling users to use OS as guest machines. The conversion tool that can turn the local machine into virtual machine called VMware vCenter Converter. [9-10]

    Figure 1. Virtualization

  6. System Architecture

    IDE CLOUD

    Registration

    Login

    Delete File

    Delete File

    User Detail DB

    Create File

    Create File

    Open File

    Open File

    File DB

    Compilers

    VMware

    OS(Windows)

    Compilers

    VMware

    OS(Windows)

    Save

    Compile

    Compile

    Run

    Run

    Figure 2. Block diagram of the system

    1. IDE (Integrated Development Environment):

      If the user is using the application for the first time he has to register by simply providing a username and a password, the user details are then stored into the user detail DB, however if the user already has

      an account he has to enter his UID and password

      .UID and password will be authenticated from the user details DB and user will be registered successfully (see Fig. 2). After successful login all the user details are retrieved from the files DB the user can then either write a program and send it for compilation and execution or manage its account. The user will first open a new file then write the code in the IDE and then select the type of file (e.g. C, Java etc.) and then save it, the file is saved in the file DB. After the file has been saved the user submits the code to compile or run. The code will be submitted to the server for compilation and execution. The results of the execution will be displayed on the user's browser.

    2. CLOUD:

      Information of the user will be stored in the database. The server side has two database for storing all the users and their files. The application communicates with the server component when the user registers itself and also when he/she signs in, submits the code or makes any changes in the account (see Fig 2). The server side does the computation when he/she submits the code and sends it to the respective compiler for compiling and executing. On the basis of the extension and the language selected by the user, the code will be sent to the respective compiler to compile and execute.

  7. Advantages:

    The Integrated Development Environment (IDE) allows the user to create new project/file and to name them according their choice. The IDE is available with the ability to edit, update and delete the existing code or file. As the files are stored on the cloud they will be easily available from anywhere. As the IDE is available online it can be access on home PC, Office PC, tablet and also on mobile phones.

  8. Conclusion:

    In this paper we presented ONLINE PROGRAMMING LANGUAGE COMPILERS on

    cloud .Online Programming allows the user to write and manage their programs. The programs then stored on could & the compilation of the programs will be managed by the cloud by forwarding the

    request to the required processor. Cloud manager act as an identifier, It identifies the programming language in which program/code is written and sends that program/code to the respected compiler. The Cloud platform proved to be capable of supporting a melding of different services. The proposed system showed how web services and cloud services could be combined to eliminate the problem of storage. Many more applications are possible when taking into account, the cloud based services.

  9. Future Work:

    In future students are provided with an on-line learning environment For different programming language anytime and anywhere,. The output of the online compiler will be written into the learning database. Then, the error of source code will be feedback to the students. Therefore, the teachers will be able analyze the information from the learning database to improve their instruction. Furthermore, the instruction/learning environment provides an active agent to monitor and manage the students learning. Security is a critical issue when developing an online program compilation and runtime environment. Arbitrary source code can be submitted and the compilers are not developed with security issues, malicious program might be compiled and run by the compilation and runtime services and can do harm to the system might cause serious problems on the server. We notice those security concerns when designing the system, and are trying to develop a more advanced thread management mechanism to restrict user programs permissions and resource allocations. Also in the future we will continue to deploy more compilers of different other languages on cloud.

  10. References:

  1. Aamir Nizam Ansari, Siddharth Patil, Arundhati Navada, Aditya Peshave, Venkatesh Borole.Online C/C++ Compiler using Cloud Computing. Pune Institute of Computer Technology, Pune University of Pune, 2011 IEEE.

  2. Mayank Patel, Online Java Compiler Using Cloud Computing International Journal of Innovative Technology and Exploring Engineering (IJITEE) ISSN: 2278-3075, Volume- 2, Issue-2, January, 2013.

  3. .NET Framework, http://msdn.microsoft.com/en- us/library/zw4w595w.aspx

  4. MySQL, http://www.mysql.com/about/

  5. Mysql server support at Rackspace,

    Rackspace.com

  6. Virtual machine (VMware), http://www.wikipedia.org/

  7. Minzhe Guo, Taolun Chai, Kai Qian, Design of Online Runtime and Testing Environment for Instant Java Programming Assessment, ISBN- 978-1-4244-6270-.Infrmation Technology: New Generations (ITNG), 2010 Seventh International Conference.

  8. Paolo Cemim, Luis Carlos Jersak, Giuseppe Alves Lopes, Jair De Mello Junior and Tiago Ferreto PPGCC-PUCRS, EduCloud: a private cloud tool for academic environments, 2012, IEEE Latin America Conference on Cloud Computing and Commmunication.

  9. Virtualization, http://www.vmware.com/virtualization/virtualizati on-basics/what-is-virtualization

  10. Virtualization, http://www.addictivetips.com/windows- tips/convert-use-your-physical-machine-in- vmware-virtualbox-virtual-pc/

Leave a Reply