An Integrated Development Environment Driven
Through Multi tenant Approach
N. Sidhanth , S. Sanjeev , R. Vanaja ,S. Tarun Chinmai, Swapnil Kumbhat.
Abstract - In the current scenario, developing software
involves use of different tools in different environments. In such
a scenario, software development with uncompromised quality,
security and efficient resource sharing is a great challenge. An
Integrated Development Environment (IDE) provides a good
ease of design and programming by integrating all the tools
required in one platform. As too much memory and hardware
resources are wasted in setting up the IDE and its related
environment, effective Software as a Service (SaaS) model that
uses the concept of Virtual Memory (VM) is proposed. In the
proposed work, a user can open the IDE through a web browser
and use the services of the IDE without any setting up procedure.
This results in efficient utilization of resources and allows access
from any device, any time. Multi Tenancy, a trending technology
is applied in the proposed IDE to reduce the server load, overall
cost and to maximize the efficiency of the server for quick
response. The IDE also provides a traditional and a clean User
Interface (UI) with familiar menus and options for better coding
experience and high responsiveness to beginners and
professionals
Keywords: IDE, SaaS, Multi-tenancy, Online-IDE,
E-learning, collaborative-working
1. INTRODUCTION
In today's world where there are many different tools and
environment packages to develop software, setting them up
and quickly getting familiar with them is really tough. Using
too many different tools creates a problem when a team is
involved in developing an application as each member might
require to set up the required environment for the different
tools to be used and updating different files may cause
duplicates and confusion.
An Integrated development environment (IDE) like
Netbeans[3] and Eclipse[4] provides a developer with most of
the tools needed and with a user interface to make
development easier. The two major problems faced by the
user using these IDEs are that first it is tough for the user to
set the required environments like cygwin[3] to use tools in
C/C++ and also to get familiar with the complex user interface
it provides. A developer or a student who has just started to
code will find it very difficult. The second problem faced is
resource sharing. A developer and his team should be able to
view the required files from the comfort of their location and
at the same time the files should be secure.
The proposed cloud based IDE is the solution to such
problems. The IDE is based on the Software as a Service
(SaaS) model of cloud computing. It provides all the
necessary tools that needn't be downloaded and set-up on
individual systems. The application can just be opened in a
web browser and can be instantly used as a guest or a
registered user. The user interface is kept very simple and
minimalistic, with options and menus like FILE and EDIT
that are found in normal text editors like MS-word that people
use in day to day life. A user who is new to the world of
coding and development will not find it hard to use the
services. The user can save his files, retrieve them on any
device that has a browser and hence can view, edit, compile
and run his project on that device. A user with an account can
also share his files so that other team members can view, edit,
compile and run the file in the device they use. Sharing the
file or folder can simply be done by sharing the Uniform
Resource Locator (URL) of the file.
Other problems that this IDE tackles are the simple mistakes
made by the user which that becomes very tough to detect and
debug. Small errors like an infinite loop or file extensions are
taken care by the IDE. It flags and stops the running of the
infinite loop. It also provides auto-file extension by scanning
for keywords in the program code and deciding which
language(C/C++) it has been written in.
2. RELATED WORK
Web applications that provide cloud storage and other tools
are gaining popularity. Google provides services such as word
editors, PowerPoint maker and excel spreadsheet generator to
users through a web application called Google Docs [27].The
user can create, modify and delete files and also save and
retrieve the files from the cloud storage given to each account
called the Google Drive. Using Drive a person can view their
files from any device. Eye OS has developed a web based
operating system (OS) [25] that provides users to have a
desktop like OS to be opened from any device with a browser
and hence can do normal functions as if they were working on
their own personal computer(PC). Team Viewer [2]
developed by TeamViewer GmbH is an application that
allows to connect to a remote desktop and use, retrieve or
modify the files on that desktop. Any change that is made
from this application is reflected in all the instances of the file
that are being used by multiple users as well as the original
file dynamically. Web OS developed by the CA Berkeley
provides basic operating system services that are dynamically
reconfigurable. CRM online developed by Salesforce [26] is a
web application that allows individuals or companies to create
databases for their sales and calculate probability and assets
related to it by storing the files in cloud. The proposed IDE
integrates multitenant services as in [5][12]Compilr.com [9] is
a single tenant online IDE that provides services in the form
of a web application. Cloud storage clients like dropbox [14]
are gaining popularity as they provide the ease of storing the
files in the cloud and retrieving them from any part of the
world. The proposed IDE is based on the SaaS model [15][16]
of the Service Oriented Architecture (SOA) as in [17][18] and
uses cloud computing, multi tenancy and Virtual Machine
(VM).By using VM we develop a meta driven SaaS
application as found in [19] to provide a traditional user
interface, better efficiency for the user and server through
multi tenancy, storage in cloud and ease of resource sharing.
Multi tenancy has been proved to be more effective than
single tenancy in many scenarios. Multi tenancy is more
effective in the long run and if the number of users are more.
Initial setup cost of multi tenancy is high, but it is drastically
reduces as time progresses. Moreover, the time taken for
achieving multi tenancy gain can be reduced if the number of
users is very high.
3. MOTIVATION FOR THE
PROPOSED WORK
In today’s world, major software developers are aiming to
provide services through web based applications. The
proposed IDE model was inspired by many such services. In
software development, many companies provide different
tools to ease the efforts made by the user and to improve the
efficiency of the user’s work. As these tools are complex, it is
difficult to download and install them. Configuring the tools
to suit our needs is also a big effort. The proposed IDE model
frees the user from the hassles of downloading and installing
heavy software as the IDE itself is provided as a web
application that can be accessed from any device that supports
a web browser. Existing online compilers or IDEs are single
tenant based and as a result their efficiency and speed is very
low. The load on the server is also high due to single tenancy.
The proposed IDE implements multi tenancy to decrease
server load thereby increasing the efficiency and the
responsiveness of the application. Research by Tableau[20]
found that by adding multi tenancy the scalable performance
of the server nearly doubled up as seen in the Figure 2.
4. IMPLEMENTATION
The implementation of the IDE is discussed in the following
sections. Section 4.1 discusses the algorithm used to store
strings in an efficient manner such that searching from this
pool of strings becomes easier and much quicker as compared
to other search algorithms.Section 4.1.1 discusses the
pseudocode for the algorithm in section 4.1 and how the code
helps to determine the keywords for highlighting and to
determine the programming language(C/C++) the user has
written in. Section 4.2 discusses the concept of multitenancy
that which is the nucleus of this paper and the code
implemented in making the IDE .This concept not only makes
the IDE unique but also perform better than the standard
IDEs. Section 4.3 discusses the simplicity of the IDE in terms
of User Interface and design.
4.1 TERNARY SEARCH TREES
Search trees are used to search data in an efficient manner. For
the searching of strings, the method which we use is ternary
search tree[8]. This search tree will help us to identify the
category of keyword for it to be highlighted. This search will
help us in auto extension of files also. Basically ternary search
tree is like binary search tree where there is a partitioning
value which partitions the strings depending on the
partitioning value. If the first character is lesser than the
partitioning value we search through the low-kid of the
partitioning value and if it is greater than the partitioning
value, searching is done through the high-kid of the
partitioning value until the string is found. If the partitioning
value is equal then the equkid is accessed and this recursive
calls are continuously made until the next character of any
equkid of the string is NULL. Once the string is found, flag
value is set. This flag value calls another module which
performs the highlighting operation. The found keyword is
highlighted and the found keyword also helps in auto –
extension of files by identifying the programming language
being implemented. This auto file-extension helps the user to
safely store the files. The ternary search tree is isomorphic to
the multi key-Quicksort technique which sorts the list of
elements in a manner similar to the quicksort technique which
is isomorphic to binary search tree. Ternary search tree has
three children where in binary search tree there are two
children.
4.1.1 AUTO FILE EXTENSION AND HIGHLIGHTING
KEYWORD
Program for Ternary search trees are used to find the
keywords from a file that matches the user's input data in the
program space. The server finds the corresponding
programming language to the keyword and gives the file
extension automatically.
Procedure for ternary search(S)
S is a char of string given by user
P is a root
lowkid is a left subtree of root P
highkid is a right subtree of root P
equkid is a string of the current root P
Set flag==0
Begin
{
ForEach (P exist)
{
If(S is less than root P)
Make P to hold lowkid
ElseIf(S is equal to root P)
{
If (S++ == 0)
Make flag==1
else
Make P to hold equkid of P
}
else
Make P to hold highkid
}
If(flag==1)
{
Retrive the respective colour of
string S
Autosave the file with recognized
language
}
}
4.2 MULTI TENANCY
In a single tenant cloud based IDE, for each request, an
instance is created, and that instance caters to the user’s
request. The load on the server is high in this case as a large
number of instances run at the same time in the server. Multi
tenancy reduces the server load as only one instance is created
per method regardless of the number of users requesting it.
This drastically brings down the load on the server as less
number of instances is created. Moreover, multi tenancy also
decreases response time and increases efficiency. The
proposed IDE implements multi tenancy by associating a
metadata file with each user Id. The metadata file serves as an
intermediate between the user and the server. All requests
made by the user are routed to the server through the metadata
file. When a request is made by the user, the metadata file is
generated and similar metadata files existing at that particular
instance are searched and are grouped together. The group has
data regarding the number of users and the nature of each
user’s request. A single instance is created for the group of
requests and it sends a single request to the server. The reply
from the server is sent to the group and the group then splits
the reply to the diffe ent use ’s e uests. As only a single
instance is created, the response time is drastically reduced.
themes, each of which is appealing and unique in its
own respect.
Fig 1 Multi tenant architecture diagram.
Pseudo code for multitenancy:
Client side(request)
For each UID
Create metadata file
If similar metadata files present
Group metadata and store count and
details in structure
Send a grouped request to server
Else
Send individual request to server
Server side (reception of request)
Receive request
if (individual request)
process according to request and
reply
else
process request according to details
in structure and reply to group
client side(obtaining reply)
metadata file receives reply from server
if (individual reply)
then send it to UID
else
send data to UIDs according to
structure details.
4.3 User Interface
The proposed IDE has a traditional look and hence it is
suitable for beginners. It also caters to the rigorous demands
of professional users. The proposed IDE also detects small
mistakes like infinite loops which are potentially disastrous
and are extremely hard to detect during runtime. Good
security is provided to keep the tenant specific data secured as
seen in [21]. As the world moves from PCs to tablets, the
proposed IDE provides a robust and scalable interface that can
be used to write, edit, run and compile codes on any device.
The programs made by every user are stored on the cloud,
where memory is allocated to each user and hence the user
can save and retrieve files from any device. The application is
accessed through a browser that retrieves and communicates
with the files in the server through data access engines as in
[22]. The cloud can store files and folders such that each user
can share them with other individual or a group of individuals,
hence facilitating resource sharing effectively. The proposed
IDE also has a feature wherein multiple users can work on the
same file; thereby the changes can be made dynamically. Thus
when one user changes something in a file, it is reflected in all
instances of the file that are currently opened or being worked
upo
The proposed IDE runs as a web application and is supported
by all modern browsers. The UI is similar to traditional IDEs
and so experienced users and amateurs don’t have trouble
adjusting to it. It also has menus like file, edit, compile, run
etc. similar to a text editor. The UI is fast and highly
responsive. Coding is made easy by auto indentation, keyword
highlighting, braces matching and typing suggestions. The
IDE also recognizes the language by the keywords used and
saves the file with the corresponding extension. The input to
the program is given in a box at the lower end of the window.
After compilation, if any errors are found, they are shown in
the same area. Users can save their documents in the cloud
and can open them whenever required. Each user is given
their own directory and so there is no possibility of users
programs getting interchanged. Users who wish to use the
cloud storage can login to the service and save their programs.
Users who just want to try out the programs can do so without
signing up too. The UI is also customizable, and users can
choose from a plethora of themes, each of which is appealing
and unique in its own respect
Fig 2 User Interface of the proposed IDE.
5 FUTURE PLANS BASED ON THE
PROPOSED WORK
Maximum of services in today’s world are given in the form
of mobile applications and hence reaches a very wide variety
of users. The proposed IDE is also being developed as a
mobile application that will users to type, edit, run and
compile their code any smart device on the go. A specialized;
coding friendly keyboard is also being developed. The
proposed IDE also has dictionary and prediction options
whereby typing the first few letters of the command, the
keyboard predicts and gives a list of commands to choose
from. Symbols like semicolons and brackets that are used
frequently are placed on the keyboard layout. The proposed
IDE has a feature that allows multiple users to run a single
instance of the file so that any change made at runtime will be
dynamically updated for all users viewing or editing the same
file, thereby reducing data redundancy and duplicates. As
more and more people show an inclination to learn to code
their own projects, the proposed work will be very helpful in
their ventures. Many people with disabilities like partial
blindness or even complete blindness find it very hard to code
as they have to use Braille keyboards. This seriously limits
their potential as there are many who can write fantastic code,
but do not have a medium to do so. The proposed IDE has a
feature to help people with disabilities to type codes. The
Proposed IDE uses the open source Google Voice Engine to
implement voice recognition of code. The users can code by
calling out commands which are recognized by the voice
Engine and the appropriate text is fetched from our custom
database. When a command is called, the command in its
correct syntax is typed on the IDE.
6 COMPLEXITIES
The complexity of the whole IDE depends on the
complexity of the ternary search algorithm that searches the
XML file that has the list of keywords for specific
programming languages and matches them up with the words
that the user has given as input. The words that are found in
the XML files are known as keywords and are highlighted in
the IDE program space. The average complexity of the ternary
search for lookup and searching is O(logN) which is better
than the existing IDE[ old paper].When a new keyword has to
be added , the complexity of insertion is O(logN). The worst
case complexity for lookup and insertion is O(N).
7 RESULTS
The following graphs show the CPU utilization obtained by
the server running on linux operating system[11] The single
tenant IDE was deployed and 50 users were made to work on
the same code at the same time. Due to single tenancy, the
processor load, as seen from the graph given below, was very
high.
Fig. 3. CPU utilization for a single tenant IDE
Whereas, when the same number of users worked on the same
code at the same time in the multitenant IDE, results were
obtained as shown below
Fig 4. CPU utilization for a multi tenant IDE.
We can see clearly a major deviation in the graph and hence
come to the conclusion that multitenancy speeds up
performance and reduces the workload and memory
requirements of the server.
8.ACKNOWLEDGEMENT
We would like to thank Dr. R Parthiban, Principal, Dr.
V.Vidhya, H.O.D of the CSE department, S.V.C.E for their
continuous support. We would like to thank our friends and
families for their motivation and support.
8 References
[1].http://www.dropbox.com
[2].http://www.teamviewer.com
[3].http://www.netbeans.org
[4].http://www.eclipse.org
[5].Sidhanth N., Sanjeev S., Swettha S., and Srividya R., " A Next Generation
IDE through Multi Tenant Approach," International Journal of Information
and Electronics Engineering vol. 4, no. 1, pp. 27-30, 2014.
[6].http://www.cygwin.com
[7].http://www.codingarchitect.wordpress.com
[8].Jon Bentley and Robert Sedgewick presented at Eighth Annual ACM-
SIAM Symposium on Discrete Algorithms New Orleans, January, 1997
[9].http://www.compilr.com
[10].http://www.tableau.com
[11] .http://www.gnu.org
[12]. Xiaoyu Yang ; R.P. Bruin. ; M.T. Dove. ; A. Walkingshaw ; T.V.
Mortimer-Jones; R. Sinclair ; D.J. Wilson ; V. Milman, ; T. Donovan, ,” A
Service-Oriented Framework for Running Quantum Mechanical Simulations
of Material Properties in a Grid Environment ”, This paper appears in:
Systems, Man, and Cybernetics, Part C: Applications and Reviews, IEEE
Transactions on Issue Date : July 2010.
[13]X. Yang , P. R. Moore , C. B. Wong ” A component-based software
framework for product lifecycle information management for consumer
products ”, IEEE Trans. Consum. Electron. vol. 53, pp.1195 2007 .
[14]. Enrique Jimnez Domingo, Javier Torres Nio, Angel Lagares Lemos,”
CLOUDIO: A Cloud Computing-oriented Multi-Tenant Architecture for
Business Information Systems ”, IEEE 3rd International Conference on Cloud
Computing, 2010
[15]. Joe Zou, Yan Wang, Kwei-Jay Lin ”A Formal Service Contract Model
for Accountable SaaS and Cloud Services” IEEE International Conference on
Services Computing, 2010
[16]. KONG Lanju, LI Qingzhong; ”A Metadata-driven Cloud Platform for
Delivery of SaaS Applications”- Proceeding of the IEEE, International
Conference on Information and Automaton, Shenzhen, Chinna June 2011
[17]. Liang Zhong, Tianyu Wo, Jianxin Li, Bo Li; ”A Virtualization-based
SaaS Enabling Architecture for Cloud Computing” - Sixth International
Conference on Autonomic and Autonomous Systems,2010.
[18]. Thomas Kwok, Jim Laredo and Sridhar Maradugu; ”A Web Services
Integration toManage Invoice Identification, Metadata Extraction, Storage
and Retrieval in a Multi-tenancy SaaS Application”
[19]. Feng Liu; Weiping Guo; Zhi Qiang Zhao; Wu Chou; - ”SaaS Integra-
tion for software Cloud”-This paper appears in: Cloud Computing (CLOUD),
IEEE 3rd International Conference, July 2010.
[20]. Z. Pervez; Sungyoung Lee; Young-Koo Lee; Dept. of Comput. Eng.,
Kyung Hee Univ., Yongin, South Korea ”Multi-Tenant, Secure, Load
Disseminated SaaS Architecture”. This paper appears in: Advanced
Communication Technology (ICACT), The 12th International Conference,
Feb 2010.
[21]. E.J. Domingo; J.T. Nino; A.L. Lemos; M.L. Lemos; R.C. Palacios;
J.M.G. Berbis ; Comput. Sci. Dept., Univ. Carlos III de Madrid, Leganes,
Spain ”CLOUDIO: A Cloud Computing-Oriented Multi-tenant Architecture
for Business Information Systems” This paper appears in: Cloud Computing
(CLOUD), 2010 IEEE 3rd International Conference, July 2010.
[22]. Xiaoyu Yang, P. Richard . Bruin,T Martin . Dove, Andrew Walking-
shaw, V. Thomas .Mortimer-Jones, Richard Sinclair, Dan. J Wilson, Victor
Milman, and Tim Donovan” A Service-Oriented Framework for Running
Quantum Mechanical Simulations of Material Properties in a Grid
Environment”- IEEE TRANSACTION ON SYSTEMS, JULY 2010.
[23].Youakim Badr, Fellow, IEEE, Frede rique Biennier, and Samir Tata,
Fellow, IEEE The Integration of Corporate Security Strategies in
Collaborative Business Processes - IEEE TRANSACTIONS ON SERVICE
COMPUTING, JULY - SEPTEMBER 2011.
[24]. A. Vahdat,. T. Anderson, M. Dahlin, D. Culler, E. Belani, P.Eastham,
and C. Yoshikawa, WebOS: Operating System Services For Wide Area
Applications, The Seventh IEEE Symposium on High Performance
Distributed Computing, July, 1998.
[25]. http://eyeos.org/
[26] http://www.salesforce.com/
[27] http://documents.google.com/
An Integrated Development Environment Driven Through Multi tenant Approach.pdf

An Integrated Development Environment Driven Through Multi tenant Approach.pdf

  • 1.
    An Integrated DevelopmentEnvironment Driven Through Multi tenant Approach N. Sidhanth , S. Sanjeev , R. Vanaja ,S. Tarun Chinmai, Swapnil Kumbhat. Abstract - In the current scenario, developing software involves use of different tools in different environments. In such a scenario, software development with uncompromised quality, security and efficient resource sharing is a great challenge. An Integrated Development Environment (IDE) provides a good ease of design and programming by integrating all the tools required in one platform. As too much memory and hardware resources are wasted in setting up the IDE and its related environment, effective Software as a Service (SaaS) model that uses the concept of Virtual Memory (VM) is proposed. In the proposed work, a user can open the IDE through a web browser and use the services of the IDE without any setting up procedure. This results in efficient utilization of resources and allows access from any device, any time. Multi Tenancy, a trending technology is applied in the proposed IDE to reduce the server load, overall cost and to maximize the efficiency of the server for quick response. The IDE also provides a traditional and a clean User Interface (UI) with familiar menus and options for better coding experience and high responsiveness to beginners and professionals Keywords: IDE, SaaS, Multi-tenancy, Online-IDE, E-learning, collaborative-working 1. INTRODUCTION In today's world where there are many different tools and environment packages to develop software, setting them up and quickly getting familiar with them is really tough. Using too many different tools creates a problem when a team is involved in developing an application as each member might require to set up the required environment for the different tools to be used and updating different files may cause duplicates and confusion. An Integrated development environment (IDE) like Netbeans[3] and Eclipse[4] provides a developer with most of the tools needed and with a user interface to make development easier. The two major problems faced by the user using these IDEs are that first it is tough for the user to set the required environments like cygwin[3] to use tools in C/C++ and also to get familiar with the complex user interface it provides. A developer or a student who has just started to code will find it very difficult. The second problem faced is resource sharing. A developer and his team should be able to view the required files from the comfort of their location and at the same time the files should be secure. The proposed cloud based IDE is the solution to such problems. The IDE is based on the Software as a Service (SaaS) model of cloud computing. It provides all the necessary tools that needn't be downloaded and set-up on individual systems. The application can just be opened in a web browser and can be instantly used as a guest or a registered user. The user interface is kept very simple and minimalistic, with options and menus like FILE and EDIT that are found in normal text editors like MS-word that people use in day to day life. A user who is new to the world of coding and development will not find it hard to use the services. The user can save his files, retrieve them on any device that has a browser and hence can view, edit, compile and run his project on that device. A user with an account can also share his files so that other team members can view, edit, compile and run the file in the device they use. Sharing the file or folder can simply be done by sharing the Uniform Resource Locator (URL) of the file. Other problems that this IDE tackles are the simple mistakes made by the user which that becomes very tough to detect and debug. Small errors like an infinite loop or file extensions are taken care by the IDE. It flags and stops the running of the infinite loop. It also provides auto-file extension by scanning for keywords in the program code and deciding which language(C/C++) it has been written in. 2. RELATED WORK Web applications that provide cloud storage and other tools are gaining popularity. Google provides services such as word editors, PowerPoint maker and excel spreadsheet generator to users through a web application called Google Docs [27].The user can create, modify and delete files and also save and retrieve the files from the cloud storage given to each account called the Google Drive. Using Drive a person can view their files from any device. Eye OS has developed a web based operating system (OS) [25] that provides users to have a desktop like OS to be opened from any device with a browser and hence can do normal functions as if they were working on their own personal computer(PC). Team Viewer [2] developed by TeamViewer GmbH is an application that allows to connect to a remote desktop and use, retrieve or modify the files on that desktop. Any change that is made from this application is reflected in all the instances of the file that are being used by multiple users as well as the original file dynamically. Web OS developed by the CA Berkeley provides basic operating system services that are dynamically reconfigurable. CRM online developed by Salesforce [26] is a web application that allows individuals or companies to create databases for their sales and calculate probability and assets related to it by storing the files in cloud. The proposed IDE integrates multitenant services as in [5][12]Compilr.com [9] is
  • 2.
    a single tenantonline IDE that provides services in the form of a web application. Cloud storage clients like dropbox [14] are gaining popularity as they provide the ease of storing the files in the cloud and retrieving them from any part of the world. The proposed IDE is based on the SaaS model [15][16] of the Service Oriented Architecture (SOA) as in [17][18] and uses cloud computing, multi tenancy and Virtual Machine (VM).By using VM we develop a meta driven SaaS application as found in [19] to provide a traditional user interface, better efficiency for the user and server through multi tenancy, storage in cloud and ease of resource sharing. Multi tenancy has been proved to be more effective than single tenancy in many scenarios. Multi tenancy is more effective in the long run and if the number of users are more. Initial setup cost of multi tenancy is high, but it is drastically reduces as time progresses. Moreover, the time taken for achieving multi tenancy gain can be reduced if the number of users is very high. 3. MOTIVATION FOR THE PROPOSED WORK In today’s world, major software developers are aiming to provide services through web based applications. The proposed IDE model was inspired by many such services. In software development, many companies provide different tools to ease the efforts made by the user and to improve the efficiency of the user’s work. As these tools are complex, it is difficult to download and install them. Configuring the tools to suit our needs is also a big effort. The proposed IDE model frees the user from the hassles of downloading and installing heavy software as the IDE itself is provided as a web application that can be accessed from any device that supports a web browser. Existing online compilers or IDEs are single tenant based and as a result their efficiency and speed is very low. The load on the server is also high due to single tenancy. The proposed IDE implements multi tenancy to decrease server load thereby increasing the efficiency and the responsiveness of the application. Research by Tableau[20] found that by adding multi tenancy the scalable performance of the server nearly doubled up as seen in the Figure 2. 4. IMPLEMENTATION The implementation of the IDE is discussed in the following sections. Section 4.1 discusses the algorithm used to store strings in an efficient manner such that searching from this pool of strings becomes easier and much quicker as compared to other search algorithms.Section 4.1.1 discusses the pseudocode for the algorithm in section 4.1 and how the code helps to determine the keywords for highlighting and to determine the programming language(C/C++) the user has written in. Section 4.2 discusses the concept of multitenancy that which is the nucleus of this paper and the code implemented in making the IDE .This concept not only makes the IDE unique but also perform better than the standard IDEs. Section 4.3 discusses the simplicity of the IDE in terms of User Interface and design. 4.1 TERNARY SEARCH TREES Search trees are used to search data in an efficient manner. For the searching of strings, the method which we use is ternary search tree[8]. This search tree will help us to identify the category of keyword for it to be highlighted. This search will help us in auto extension of files also. Basically ternary search tree is like binary search tree where there is a partitioning value which partitions the strings depending on the partitioning value. If the first character is lesser than the partitioning value we search through the low-kid of the partitioning value and if it is greater than the partitioning value, searching is done through the high-kid of the partitioning value until the string is found. If the partitioning value is equal then the equkid is accessed and this recursive calls are continuously made until the next character of any equkid of the string is NULL. Once the string is found, flag value is set. This flag value calls another module which performs the highlighting operation. The found keyword is highlighted and the found keyword also helps in auto – extension of files by identifying the programming language being implemented. This auto file-extension helps the user to safely store the files. The ternary search tree is isomorphic to the multi key-Quicksort technique which sorts the list of elements in a manner similar to the quicksort technique which is isomorphic to binary search tree. Ternary search tree has three children where in binary search tree there are two children. 4.1.1 AUTO FILE EXTENSION AND HIGHLIGHTING KEYWORD Program for Ternary search trees are used to find the keywords from a file that matches the user's input data in the program space. The server finds the corresponding programming language to the keyword and gives the file extension automatically. Procedure for ternary search(S) S is a char of string given by user P is a root lowkid is a left subtree of root P highkid is a right subtree of root P equkid is a string of the current root P Set flag==0 Begin {
  • 3.
    ForEach (P exist) { If(Sis less than root P) Make P to hold lowkid ElseIf(S is equal to root P) { If (S++ == 0) Make flag==1 else Make P to hold equkid of P } else Make P to hold highkid } If(flag==1) { Retrive the respective colour of string S Autosave the file with recognized language } } 4.2 MULTI TENANCY In a single tenant cloud based IDE, for each request, an instance is created, and that instance caters to the user’s request. The load on the server is high in this case as a large number of instances run at the same time in the server. Multi tenancy reduces the server load as only one instance is created per method regardless of the number of users requesting it. This drastically brings down the load on the server as less number of instances is created. Moreover, multi tenancy also decreases response time and increases efficiency. The proposed IDE implements multi tenancy by associating a metadata file with each user Id. The metadata file serves as an intermediate between the user and the server. All requests made by the user are routed to the server through the metadata file. When a request is made by the user, the metadata file is generated and similar metadata files existing at that particular instance are searched and are grouped together. The group has data regarding the number of users and the nature of each user’s request. A single instance is created for the group of requests and it sends a single request to the server. The reply from the server is sent to the group and the group then splits the reply to the diffe ent use ’s e uests. As only a single instance is created, the response time is drastically reduced. themes, each of which is appealing and unique in its own respect. Fig 1 Multi tenant architecture diagram. Pseudo code for multitenancy: Client side(request) For each UID Create metadata file If similar metadata files present Group metadata and store count and details in structure Send a grouped request to server Else Send individual request to server Server side (reception of request) Receive request if (individual request) process according to request and reply else process request according to details in structure and reply to group client side(obtaining reply) metadata file receives reply from server if (individual reply) then send it to UID else send data to UIDs according to structure details. 4.3 User Interface The proposed IDE has a traditional look and hence it is suitable for beginners. It also caters to the rigorous demands of professional users. The proposed IDE also detects small mistakes like infinite loops which are potentially disastrous and are extremely hard to detect during runtime. Good security is provided to keep the tenant specific data secured as seen in [21]. As the world moves from PCs to tablets, the
  • 4.
    proposed IDE providesa robust and scalable interface that can be used to write, edit, run and compile codes on any device. The programs made by every user are stored on the cloud, where memory is allocated to each user and hence the user can save and retrieve files from any device. The application is accessed through a browser that retrieves and communicates with the files in the server through data access engines as in [22]. The cloud can store files and folders such that each user can share them with other individual or a group of individuals, hence facilitating resource sharing effectively. The proposed IDE also has a feature wherein multiple users can work on the same file; thereby the changes can be made dynamically. Thus when one user changes something in a file, it is reflected in all instances of the file that are currently opened or being worked upo The proposed IDE runs as a web application and is supported by all modern browsers. The UI is similar to traditional IDEs and so experienced users and amateurs don’t have trouble adjusting to it. It also has menus like file, edit, compile, run etc. similar to a text editor. The UI is fast and highly responsive. Coding is made easy by auto indentation, keyword highlighting, braces matching and typing suggestions. The IDE also recognizes the language by the keywords used and saves the file with the corresponding extension. The input to the program is given in a box at the lower end of the window. After compilation, if any errors are found, they are shown in the same area. Users can save their documents in the cloud and can open them whenever required. Each user is given their own directory and so there is no possibility of users programs getting interchanged. Users who wish to use the cloud storage can login to the service and save their programs. Users who just want to try out the programs can do so without signing up too. The UI is also customizable, and users can choose from a plethora of themes, each of which is appealing and unique in its own respect Fig 2 User Interface of the proposed IDE. 5 FUTURE PLANS BASED ON THE PROPOSED WORK Maximum of services in today’s world are given in the form of mobile applications and hence reaches a very wide variety of users. The proposed IDE is also being developed as a mobile application that will users to type, edit, run and compile their code any smart device on the go. A specialized; coding friendly keyboard is also being developed. The proposed IDE also has dictionary and prediction options whereby typing the first few letters of the command, the keyboard predicts and gives a list of commands to choose from. Symbols like semicolons and brackets that are used frequently are placed on the keyboard layout. The proposed IDE has a feature that allows multiple users to run a single instance of the file so that any change made at runtime will be dynamically updated for all users viewing or editing the same file, thereby reducing data redundancy and duplicates. As more and more people show an inclination to learn to code their own projects, the proposed work will be very helpful in their ventures. Many people with disabilities like partial blindness or even complete blindness find it very hard to code as they have to use Braille keyboards. This seriously limits their potential as there are many who can write fantastic code, but do not have a medium to do so. The proposed IDE has a feature to help people with disabilities to type codes. The Proposed IDE uses the open source Google Voice Engine to implement voice recognition of code. The users can code by calling out commands which are recognized by the voice Engine and the appropriate text is fetched from our custom database. When a command is called, the command in its correct syntax is typed on the IDE. 6 COMPLEXITIES The complexity of the whole IDE depends on the complexity of the ternary search algorithm that searches the XML file that has the list of keywords for specific programming languages and matches them up with the words that the user has given as input. The words that are found in the XML files are known as keywords and are highlighted in the IDE program space. The average complexity of the ternary search for lookup and searching is O(logN) which is better than the existing IDE[ old paper].When a new keyword has to be added , the complexity of insertion is O(logN). The worst case complexity for lookup and insertion is O(N). 7 RESULTS The following graphs show the CPU utilization obtained by the server running on linux operating system[11] The single tenant IDE was deployed and 50 users were made to work on the same code at the same time. Due to single tenancy, the
  • 5.
    processor load, asseen from the graph given below, was very high. Fig. 3. CPU utilization for a single tenant IDE Whereas, when the same number of users worked on the same code at the same time in the multitenant IDE, results were obtained as shown below Fig 4. CPU utilization for a multi tenant IDE. We can see clearly a major deviation in the graph and hence come to the conclusion that multitenancy speeds up performance and reduces the workload and memory requirements of the server. 8.ACKNOWLEDGEMENT We would like to thank Dr. R Parthiban, Principal, Dr. V.Vidhya, H.O.D of the CSE department, S.V.C.E for their continuous support. We would like to thank our friends and families for their motivation and support. 8 References [1].http://www.dropbox.com [2].http://www.teamviewer.com [3].http://www.netbeans.org [4].http://www.eclipse.org [5].Sidhanth N., Sanjeev S., Swettha S., and Srividya R., " A Next Generation IDE through Multi Tenant Approach," International Journal of Information and Electronics Engineering vol. 4, no. 1, pp. 27-30, 2014. [6].http://www.cygwin.com [7].http://www.codingarchitect.wordpress.com [8].Jon Bentley and Robert Sedgewick presented at Eighth Annual ACM- SIAM Symposium on Discrete Algorithms New Orleans, January, 1997 [9].http://www.compilr.com [10].http://www.tableau.com [11] .http://www.gnu.org [12]. Xiaoyu Yang ; R.P. Bruin. ; M.T. Dove. ; A. Walkingshaw ; T.V. Mortimer-Jones; R. Sinclair ; D.J. Wilson ; V. Milman, ; T. Donovan, ,” A Service-Oriented Framework for Running Quantum Mechanical Simulations of Material Properties in a Grid Environment ”, This paper appears in: Systems, Man, and Cybernetics, Part C: Applications and Reviews, IEEE Transactions on Issue Date : July 2010. [13]X. Yang , P. R. Moore , C. B. Wong ” A component-based software framework for product lifecycle information management for consumer products ”, IEEE Trans. Consum. Electron. vol. 53, pp.1195 2007 . [14]. Enrique Jimnez Domingo, Javier Torres Nio, Angel Lagares Lemos,” CLOUDIO: A Cloud Computing-oriented Multi-Tenant Architecture for Business Information Systems ”, IEEE 3rd International Conference on Cloud Computing, 2010 [15]. Joe Zou, Yan Wang, Kwei-Jay Lin ”A Formal Service Contract Model for Accountable SaaS and Cloud Services” IEEE International Conference on Services Computing, 2010 [16]. KONG Lanju, LI Qingzhong; ”A Metadata-driven Cloud Platform for Delivery of SaaS Applications”- Proceeding of the IEEE, International Conference on Information and Automaton, Shenzhen, Chinna June 2011 [17]. Liang Zhong, Tianyu Wo, Jianxin Li, Bo Li; ”A Virtualization-based SaaS Enabling Architecture for Cloud Computing” - Sixth International Conference on Autonomic and Autonomous Systems,2010. [18]. Thomas Kwok, Jim Laredo and Sridhar Maradugu; ”A Web Services Integration toManage Invoice Identification, Metadata Extraction, Storage and Retrieval in a Multi-tenancy SaaS Application” [19]. Feng Liu; Weiping Guo; Zhi Qiang Zhao; Wu Chou; - ”SaaS Integra- tion for software Cloud”-This paper appears in: Cloud Computing (CLOUD), IEEE 3rd International Conference, July 2010.
  • 6.
    [20]. Z. Pervez;Sungyoung Lee; Young-Koo Lee; Dept. of Comput. Eng., Kyung Hee Univ., Yongin, South Korea ”Multi-Tenant, Secure, Load Disseminated SaaS Architecture”. This paper appears in: Advanced Communication Technology (ICACT), The 12th International Conference, Feb 2010. [21]. E.J. Domingo; J.T. Nino; A.L. Lemos; M.L. Lemos; R.C. Palacios; J.M.G. Berbis ; Comput. Sci. Dept., Univ. Carlos III de Madrid, Leganes, Spain ”CLOUDIO: A Cloud Computing-Oriented Multi-tenant Architecture for Business Information Systems” This paper appears in: Cloud Computing (CLOUD), 2010 IEEE 3rd International Conference, July 2010. [22]. Xiaoyu Yang, P. Richard . Bruin,T Martin . Dove, Andrew Walking- shaw, V. Thomas .Mortimer-Jones, Richard Sinclair, Dan. J Wilson, Victor Milman, and Tim Donovan” A Service-Oriented Framework for Running Quantum Mechanical Simulations of Material Properties in a Grid Environment”- IEEE TRANSACTION ON SYSTEMS, JULY 2010. [23].Youakim Badr, Fellow, IEEE, Frede rique Biennier, and Samir Tata, Fellow, IEEE The Integration of Corporate Security Strategies in Collaborative Business Processes - IEEE TRANSACTIONS ON SERVICE COMPUTING, JULY - SEPTEMBER 2011. [24]. A. Vahdat,. T. Anderson, M. Dahlin, D. Culler, E. Belani, P.Eastham, and C. Yoshikawa, WebOS: Operating System Services For Wide Area Applications, The Seventh IEEE Symposium on High Performance Distributed Computing, July, 1998. [25]. http://eyeos.org/ [26] http://www.salesforce.com/ [27] http://documents.google.com/