Browse Prior Art Database

Automatic Data-Driven Partitioning of MVC Applications for On-Demand Edge Computing

IP.com Disclosure Number: IPCOM000032965D
Original Publication Date: 2004-Nov-19
Included in the Prior Art Database: 2004-Nov-19
Document File: 5 page(s) / 112K

Publishing Venue

IBM

Abstract

It has been formally proven (in an asynchronous network model) that it is impossible for wide area distributed computing systems to provide all of the following three guarantees - Consistency, Availability and tolerance to network Partitions (CAP). In this paper, is disclosed, an integrated development environment (IDE) for distributed applications that allows developers to be aware of the CAP theorem while they develop their systems and experiment with various trade-offs between model consistency, application availability, scalability, performance and tolerance to network partitions.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 19% of the total text.

Page 1 of 5

Automatic Data-Driven Partitioning of MVC Applications for On -Demand Edge Computing

Automatic Data-Driven Partitioning of MVC Applications for On-Demand Edge Computing.

1. Introduction

It has been formally proven in [1] (in an asynchronous network model) that it is impossible for wide area distributed computing systems to provide all of the following three guarantees - Consistency, Availability and tolerance to network Partitions (CAP). In this paper, is disclosed, an integrated development environment (IDE) for distributed applications that allows developers to be aware of the CAP theorem while they develop their systems and experiment with various trade-offs between model consistency, application availability, scalability, performance and tolerance to network partitions.

In this paper, is disclosed a method to partition MVC-based applications (specially constructed distributed applications) are partitioned into two components - one running at the edge and the other running at the origin (automatically using IDEs such as WebSphere Studio). This is achieved using XML-based descriptors to describe the consistency properties of the underlying model.

Also, a method is shown to illustrate how an IDE may be used to assist a developer in the development of a distributed application while keeping edge computing in mind. Finally, a method is described to extend the IDE to generate instrumented code that will allow developers to use an edge computing profiler tool (ECP) to analyze the benefits (increased scalability and availability and lower response times) derived from distributing their applications between the edge and the origin. This tool is very similar in spirit to a code-coverage and a code-profiler tool.

The whole process of building distributed applications can then be viewed as an iterative process where the user first specifies consistency properties of the data, then uses an IDE to partition the application and finally determines the benefits obtainable from such an execution through an analysis of the trace by an ECP tool. Along the process, the IDE figures certain aspects of the partitioning by itself and requires help from the user in other aspects through the use of well-defined annotations. The process of annotating the code to assist IDEs and other tools in partitioning and analyzing edge computing applications is very similar to the use of pragmas in C and C++ programs to assist parallelizing compilers in generating code for execution on parallel machines.

To simplify this discussion, the disclosure uses Struts-based MVC applications. Without much loss of generality, the discussion here applies to other MVC-based applications such as portlet-based applications. Also, a specific example, the java pet store (JPS), is used, to describe the methodology. The official JPS application from Sun is not Struts-based, so a Struts-based implementation of an online pet store from www.ibatis.com is used as the example.

2. Data laye...