BACKGROUND

The present disclosure relates generally to different techniques for generating and/or using copies of applications having defined or limited scope.

This section is intended to introduce the reader to various aspects of art that may be related to aspects of the present disclosure, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.

Organizations, regardless of size, rely upon access to information technology (IT) and data and services for their continued operation and success. A respective organization's IT infrastructure may have associated hardware resources (e.g. computing devices, load balancers, firewalls, switches, etc.) and software resources (e.g. productivity software, database applications, custom applications, and so forth). Over time, more and more organizations have turned to cloud computing approaches to supplement or enhance their IT infrastructure solutions.

Cloud computing relates to the sharing of computing resources that are generally accessed via the Internet. In particular, a cloud computing infrastructure allows users, such as individuals and/or enterprises, to access a shared pool of computing resources, such as servers, storage devices, networks, applications, and/or other computing based services. By doing so, users are able to access computing resources on demand that are located at remote locations. These resources may be used to perform a variety of computing functions (e.g., storing and/or processing large quantities of computing data). For enterprise and other organization users, cloud computing provides flexibility in accessing cloud computing resources without accruing large up-front costs, such as purchasing expensive network equipment or investing large amounts of time in establishing a private network infrastructure. Instead, by utilizing cloud computing resources, users are able to redirect their resources to focus on their enterprise's core functions.

In modern communication networks, examples of cloud computing services a user may utilize include so-called infrastructure as a service (IaaS), software as a service (SaaS), and platform as a service (PaaS) technologies. IaaS is a model in which providers abstract away the complexity of hardware infrastructure and provide rapid, simplified provisioning of virtual servers and storage, giving enterprises access to computing capacity on demand. In such an approach, however, a user may be left to install and maintain platform components and applications. SaaS is a delivery model that provides software as a service rather than an end product. Instead of utilizing a local network or individual software installations, software is typically licensed on a subscription basis, hosted on a remote machine, and accessed by client customers as needed. For example, users are generally able to access a variety of enterprise and/or information technology (IT)-related software via a web browser. PaaS acts as an extension of SaaS that goes beyond providing software services by offering customizability and expandability features to meet a user's needs. For example, PaaS can provide a cloud-based developmental platform for users to develop, modify, and/or customize applications and/or automate enterprise operations without maintaining network infrastructure and/or allocating computing resources normally associated with these functions.

Customers of such cloud computing services may, as part of their purchased services, have access to applications for performing various organizational functions. In such an example, customer developers may receive requests from multiple business units or groups to create applications similar to those they have already built or to those used by other units or groups. In such circumstances, developers may have to make modifications to existing applications or more general version of an application by going into the platform and finding where to make changes based on each business's specific needs. This process of developing, modifying, and/or customizing applications can be time-consuming and complicated and may be prone to errors.

SUMMARY

A summary of certain embodiments disclosed herein is set forth below. It should be understood that these aspects are presented merely to provide the reader with a brief summary of these certain embodiments and that these aspects are not intended to limit the scope of this disclosure. Indeed, this disclosure may encompass a variety of aspects that may not be set forth below.

The present approach relates to techniques for generating application templates and using application templates to create copies of an application (e.g., “scoped” applications) that may be configured for use by a specific group within an organization and/or to perform a limited or targeted function. Such application copies may restrict access to application files and/or data based on the target use or users. Application copies may also be configured or designed to incorporate features, graphics, interface elements, or themes particular to the targeted group of users or organizational unit.

The present disclosure relates various approaches for application template generation and use. In a first aspect, a user may access or request an application template and can define values for a limited set of pre-defined application variables to create the application copy. In certain embodiments, a user may be provided more flexibility in creating the application copy by employing an application template employing modules or other groupings of variables directed to generating “objects” (e.g., metadata records) within the application copy (such as modules related to a graphical user interface (GUI) object, business rule set, target data, and so forth). In such an approach, the objects may be associated with reusable object templates, with application variables defined within each object template for a user to configure to customize aspect of the application copy. In further embodiments, the application template that is configured by the user may be generated in an automated or semi-automated manner by employing an application scanner routine or code to analyze and/or parse existing application source code to identify application variables within an application that may or may not be modified, to test the identified variables, and to output a new application template based on the identified modifiable variables for users to utilize.

Various refinements of the features noted above may exist in relation to various aspects of the present disclosure. Further features may also be incorporated in these various aspects as well. These refinements and additional features may exist individually or in any combination. For instance, various features discussed below in relation to one or more of the illustrated embodiments may be incorporated into any of the above-described aspects of the present disclosure alone or in any combination. The brief summary presented above is intended only to familiarize the reader with certain aspects and contexts of embodiments of the present disclosure without limitation to the claimed subject matter.

