Abstract:
A method of and a mobile processing device for accessing a web application platform. The method includes installing an application configured to access a server hosting the web application platform, configuring the application, wherein configuring comprises generating at least one of a data capture list and a data lookup list available to the application, transferring authentication information to the server, receiving an indication of which application configurations the application is permitted to access based upon the authentication information, and displaying a set of one or more icons related to the application configurations the application is permitted to access. The mobile processing device includes various hardware components for performing the method.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application claims the priority benefit of U.S. Provisional Application No. 61/673,984 entitled “Mobile Application for Accessing a Sharepoint® Server” and filed Jul. 20, 2012, the content of which is hereby incorporated by reference in its entirety. 
     This application is also related to U.S. patent application Ser. No. 12/699,398 filed Feb. 3, 2010 and entitled “Dynamic Linking in SHAREPOINT™” and U.S. patent application Ser. No. 12/952,296 filed Nov. 23, 2010 and entitled “Method and System for Adding Combination Fields to SHAREPOINT™.” The contents of both these related applications are hereby incorporated by reference in their entireties. 
    
    
     FIELD OF THE INVENTION 
     This invention generally relates to the Microsoft SharePoint® platform, and more particularly, to accessing standard Microsoft SharePoint® technology via an application installed and run on a portable computing device. 
     BACKGROUND 
     Microsoft SharePoint® is a family of software products developed by Microsoft Corporation for collaboration, file sharing and web publishing. The Microsoft SharePoint® Server is one of these products. 
     As depicted in  FIG. 1 , a Microsoft SharePoint® Server (hereinafter, “Server”) is generally composed of three major tiers or logical layers: 1.) a Web Front End layer  102  which processes HTTP requests to the Server; 2.) An application layer  104  which provides such features as Search and Excel Services; and, 3.) A dedicated Microsoft SQL Server data storage  106 . 
     While SharePoint® users can access SharePoint® functionality through multiple methods, the primary user interface is a web-based application accessed through a browser. The majority of SharePoint®&#39;s functionality is supported across all major desktop web browsers. 
     SharePoint® can also be accessed through: a Windows-based synchronized desktop client, Windows 7 Federated Search, WebDAV “Internet folders” (i.e. via Windows Explorer), Microsoft Outlook, Microsoft Office 2010, and other third party applications. Corporate directory security restrictions may be applied at a granular level, enabling SharePoint® sites to be internet-facing, intranet-facing, or both. 
     However, with the power and convenience of portable computing devices such as tablet computers increasing, mobile applications directed to a specific function are increasing as well. Mobile applications are typically designed and coded to solve very specific problems or perform very specific functions. For example, an email application is only capable of handling email, and if one were to inspect the source code for such an application he would see explicit references to “subject”, “from” and “to” data fields, SMTP protocols, and email servers. This specializations forces a company to purchase many different specialized applications and results in high third party software costs as these applications are acquired. 
     SUMMARY 
     The present disclosure concerns systems, devices and methods related to optical modulation devices, and more particularly to resonator-based optical modulators. For example, in one scenario, a method of accessing a web application platform from a mobile processing device includes installing an application configured to access a server hosting the web application platform; configuring the application, wherein configuring comprises generating at least one of a data capture list and a data lookup list available to the application; transferring authentication information to the server; receiving an indication of which application configurations the application is permitted to access based upon the authentication information; and displaying a set of one or more icons related to the application configurations the application is permitted to access. 
     In a second scenario, a mobile processing device for accessing a web application platform includes a processor, a display operably connected to the processor, and a non-transitory computer readable medium operably connected to the processor. The computer readable medium contains set of instructions configured to instruct the processor to install an application configured to access a server hosting the web application platform, configure the application, wherein configuring comprises generating at least one of a data capture list and a data lookup list available to the application, transfer authentication information to the server, receive an indication of which application configurations the application is permitted to access based upon the authentication information, and output, on the display, a set of one or more icons related to the application configurations the application is permitted to access. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram depicting the organization of memory layers in a typical prior art Microsoft SharePoint® Server. 
         FIG. 2  is a block diagram depicting the organization of memory layers in a Microsoft SharePoint® Server with the combination fields extensions, in accordance with an embodiment of the present invention. 
         FIG. 3  is a block diagram depicting a typical system configuration in accordance with an embodiment of the present invention. 
         FIG. 4  depicts a flow chart of an example procedure for accessing a SharePoint® server via a tablet computer in accordance with an embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION 
     It will be readily understood that the components of the embodiments as generally described herein and illustrated in the appended figures could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of various embodiments, as represented in the figures, is not intended to limit the scope of the present disclosure, but is merely representative of various embodiments. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated. 
     The present disclosure may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the disclosure is, therefore, indicated by the appended claims rather than by this detailed description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope. 
     Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present disclosure should be or are in any single embodiment of the disclosure. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present disclosure. Thus, discussions of the features and advantages, and similar language, throughout the specification may, but do not necessarily, refer to the same embodiment. 
     Furthermore, the described features, advantages and characteristics of the disclosure may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, in light of the description herein, that the teachings of the disclosure made herein can be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the disclosure. 
     As used in this document, the singular forms “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise. Unless defined otherwise, all technical and scientific terms used herein have the same meanings as commonly understood by one of ordinary skill in the art. As used in this document, the term “comprising” means “including, but not limited to.” 
     Reference throughout this specification to “one embodiment”, “an embodiment”, or similar language means that a particular feature, structure, or characteristic described in connection with the indicated embodiment is included in at least one embodiment of the present disclosure. Thus, the phrases “in one embodiment”, “in an embodiment”, and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment. 
     The present invention utilizes a computer system, in addition to the method and data structures as described herein, having a minimal configuration of at least one processor and associated computer memory, the processor and memory configured to operate as a web application platform configured to provide content and document management as well as a multipurpose set of web technologies configured for one or more organizations, the technologies generally backed by a common infrastructure. An example of such a web application platform is Microsoft SharePoint® Server providing Microsoft SharePoint® Services. Reference herein to “Microsoft SharePoint® Services” or simply “SharePoint®” assumes the use of a Microsoft SharePoint® Server. The computer memory is configured with processor instructions and data which, when loaded into the processor, cause the processor to execute the methods of the invention. 
     The Microsoft SharePoint® Server computer system may alternatively be comprised of several processors with associated computer memory, as is well understood in the art. 
     An embodiment of the present invention advantageously provides for producing complex data structure items in a Microsoft SharePoint® platform application, whereby one data item contains within a single data field multiple sets of reference data. 
       FIG. 1  depicts a simplified exemplary memory schematic  100  of the software layers for a prior art Microsoft SharePoint® Server. A typical Microsoft SharePoint® Server includes a web front end  102 , an application layer  104 , and data storage  106 . The web front end  102  layer processes HTTP requests to the Microsoft SharePoint® Server. The data storage  106  layer provides a data repository. The application layer  104  is where SharePoint® applications reside. 
       FIG. 2  depicts a simplified exemplary memory schematic  200  of the software layers in an embodiment of the invention. The web front end  102  and data storage  106  layers operate as in  FIG. 1 . However, the application layer  104  includes the necessary support for the inventive combination fields extension  202 . 
     The server as illustrated in  FIGS. 1 and 2  may be configured to run a specific application such as the RADS® system described in application Ser. Nos. 12/699,398 and 12/952,296. However, the present disclosure provides a configurable mobile access point to the client&#39;s server-based RADS® systems. The intent of the application is to enhance a user experience for users of the RADS® Platform when connecting to the application from portable computing de vice such as a table computer. The application may effectively mirror and/or enhance existing business processes for the largest possible base of users and greatly enhance the value of the RADS® infrastructure for clients. A desired result of the mobile interface is primarily for data capture and review/approval of information within RADS®. 
     The mobile application as described herein takes a new approach to mobile application design by reading its configuration dynamically from a Microsoft SharePoint® Services list. None of the data capabilities are “hard coded” into the application, but are instead controlled by the configurations stored within SharePoint®, which allows for the application to be easily customized for specific clients as well as for specific users. When a user first starts the application, they are prompted to provide credentials and a server URL. The application then connects to the server and, once authenticated, it may connect to a configuration list and determines which configurations have been set up and enabled for that user. The configuration list is capable of holding virtually unlimited configurations for virtually unlimited users. For example, a user from the “Sales” group may receive a completely different configuration than a user from the “Compliance” group. 
     Each configuration may store information about which users or groups have access, what icons and graphics are used, the color schemes/branding used, effective/expiration dates for the configuration, how often data is refreshed, how long before a user session times out, what lists are enabled for data capture (add/update/delete) and what lists are enabled for lookup/reference (read only). For individual data lists, sub-queries may be contained within the configurations and are used for each data capture or lookup list to filter the data, so only relevant data for that user or data for which that user has permissions to be accessible or displayed. 
     The configuration may also control how the portable computing device will render the data capture form. Fields present, label visibility, field placement, sorting, data visibility, and behavior can be controlled through the configuration. The configurations are completely dynamic and are wholly dependent on the data stored in the configuration list. As changes to configurations are made and the mobile application is connected, the appearance, functionality, and behavior of the application will change real-time to reflect the current configuration. Additional detailed related to the portable computing device and mobile application is presented in the following discussions of  FIGS. 3 and 4 . 
       FIG. 3  is a block diagram depicting exemplary components of a system  300  employing the present invention. A SharePoint® Server  312  is provided, including a computer processor  302 , associated computer memory  304 , input/output interface  306 , a web services interface  308  and data storage  310 . In an embodiment of the invention, the server  312  is in communication with a network such as the Internet  314  via the I/O interface  306  and the web services interface  308 , although alternatives to the Internet are envisioned, and even a stand-alone system may alternatively be deployed. A mobile computing device such as tablet computer  316  may be operably connected to the server  312  via the Internet  314 . 
     The I/O interface  306  may be the interface with which a human user of the system interacts, presented as a graphical user interface on the tablet computer and constructed by the SharePoint® Server  312  as defined by a custom configuration by a software provider or management company. The web services interface  308  may be the computer interface through which the user&#39;s computing device (e.g., the tablet computer  316 ) interacts directly with the SharePoint® server  312 . Specifically, a mobile application on the tablet computer  316  may be configured to connect to the server  312  via the web services interface  308  to access necessary back-end services running on the server  312 . 
       FIG. 4  depicts a flow chart illustrating an example procedure for accessing a server such as server  312  using a tablet computer such as tablet computer  316 . The application may be downloaded  402  and installed  404  on the mobile device as per the mobile device platform standard deployment process. For security purposes, the end user may also require licensing information and have an initial server configuration performed on the customer&#39;s existing RADS®-based system. 
     To use the application, the application may be configured  406 . A configuration list within the client&#39;s SharePoint® implementation may first be setup. In this list, an administrator will generate and configure what data capture lists and data lookup lists are available to the client application, along with the users and/or groups that have access to this specific configuration. The user may also be given credentials to access the SharePoint® site. For example, the configurations list may be created that will be used to store the various configurations that will be defined for the application. The data that is stored includes Configuration Name, Configuration icon, Effective Date, Operational Parameters, Configuration Enabled (Y/N), Expiration Date, Forced Update (Y/N), Online Only (Y/N), Refresh Data Frequency, Save User Credentials (Y/N), Specified Users, User Session timeout, Data Capture lists, and Data Lookup Lists. 
     After installation of the application on the mobile device per the mobile device platform requirements, the user then provides credentials and a server URL in order to authenticate  408  the application. After connecting, the application will display icons for the configurations enabled for that user as based upon the authentication of the application, thereby allowing the user to access  410  those configurations. The user can tap the icon to navigate into the configuration where he will be presented with the configured data capture lists. Tapping the list icon will open the list and present the user with the current data along with options to view, edit, or add new records. 
     On the mobile application platform (e.g., iOS or Android), the application may be created and coded so that it is able to:
         Accept credentials and a server URL from the user   Given those credentials and URL, be able to connect to the server   Read the configurations list from the server and determine what configurations are available for this user.   Given the configurations, display icons to the user the for which data capture lists they have access to   Upon selection of a Data Capture List, connect to that SharePoint® list and render the contents while also creating a local cached copy of the data   Upon selection of a specific record, have code that can interpret each different supported SharePoint® field or RADS® custom field type and display that record and its data   Upon editing a record or creating a new record, have code that can interpret each different supported SharePoint® field or RADS® custom field type and allow for the display, update, or insert of data into that field.   The configuration also controls how the mobile device will render the data capture/display form. Fields present, label visibility, field placement, sorting, data visibility, and behavior can be controlled through the configuration.   When in an online/connected mode, be able to post back new or changed data and commit the data to the server as well as saved a local cached copy, and be able to indicate that data save was successful as well as call out any data conflicts that have occurred (server data has changed since it was downloaded and changed by the mobile user). Code may be written to handle the conflicting data.   When in an offline mode, allow a user to work with cached data in a similar manner and then allow for the resynchronization of data to the server once connected.   On the server-side, web services should be created to allow the mobile application code to connect to the server and transfer data. The web services need to be able to list, query, filter, sort, add, update, and delete data in the prescribed SharePoint® lists as specified in the configuration.       

     The application as described herein is different in that the application itself is not explicitly coded to provide any specific function or task; rather it connects to a server in order to read a configuration that describes what the application is able to do. An attractive feature of the present disclosure is that the application can be configured to interact with almost any server-based system, freeing the customer from having to purchase many limited use applications, as well as easily enabling mobile access to data and applications that might otherwise be less accessible. Thus, the application provides greater value to customers and end users in that only one application can be configured to access many different/disparate server based systems, where prior art would require many special use or special function applications to do the same tasks. 
     Although the invention herein has been described with reference to particular embodiments, it is to be understood that these embodiments are merely illustrative of the principles and applications of the present invention. It is therefore to be understood that numerous modifications may be made to the illustrative embodiments and that other arrangements may be devised without departing from the spirit and scope of the present invention as defined by the appended claims.