ABSTRACT

Embodiments of the invention provide a platform-independent application development framework for programming an application.

The framework comprises a content interface configured to provide an Application Programming Interface (API) to program the application comprising a programming code to be executed on one or more platforms. The API provided by the framework is independent of the one or more platforms. The framework further comprises an application environment configured to provide an infrastructure that is independent of the one or more platforms and one or more plug-in interfaces configured to provide an interface between the application environment and the one or more platforms.

Platform-independent application development framework
Platform-independent application development framework

Platform-independent application development framework

An Inventor: Dr. Tal Lavian

FIELD OF THE INVENTION

The teaching herein generally relates to application development framework and more specifically to platform independent development framework for applications.

BACKGROUND OF THE INVENTION

Various users across the globe communicate or perform various activities on computer and device networks.

Moreover, the users interact with each other through the networks, such as the Internet. Typically, devices like personal computers are used by the users to interact over the Internet. The users can interact from various Internet websites or social networking sites, for example, Facebook, Myspace, Hi5, and Orkut etc. Recently, the development in mobile devices such as cell phones, smartphones and PDAs, computers, laptops and the like has enabled them to be used for performing various activities on networks such as the Internet. Moreover, the mobile devices can be used for real-time interaction with other users on the network. The interaction or communication can be in the form of chatting, playing interactive online games, browsing, shopping, music, video, banking, business and the like.

The rapid pace of innovation in technology has generated various types of devices and platforms. Moreover, the number of devices is increasing rapidly. For example, there are various operating systems available for the devices such as Windows, Linux, Macintosh, and Symbian, etc. Moreover, a large number of J2ME platforms are available for the mobile devices such as cell phones. Furthermore, the mobile devices have a wide rage of capabilities in terms of screen size, screen type, screen resolution, processor, and memory etc. The applications for these devices have to be developed based on their platforms. As a result, each application has to be developed based on each platform or ported to other platforms. For example, in case of computer games the programming languages typically used are JAVA, C#, C++, Action Script, and the like. Therefore, an application developed in Action Script programming language may have to be ported to other programming language when not supported by a device platform.

Typically, the programming code of an application is translated manually from one programming language to another. However, manual translation requires specific and in-depth knowledge of the programming languages of the different operating systems. Moreover, manual translation is a very time consuming process. Furthermore, the programming languages are constantly developed or get modified. Moreover, the applications have to be developed on specific development platforms compatible with the programming language used for development and the operating system of a device. Therefore, knowledge of specific tools and Application Programming Interface (API) for every device platform may be required to program an application. Some existing mechanisms, such as emulation of applications and virtual machines are available to support applications on multiple devices.

In case of virtual machine mechanisms the programming code of the application is separated into platform independent code and platform dependent code. Platform independent code is written in the virtual machine’s coding language, which usually is a scripting language. Further, the code may be compiled to a binary that only the virtual machine itself knows how to execute. Since the code is never compiled to a native platform binary and must run inside the virtual machine space, there exist runtime overheads. Moreover, the existing mechanisms generate application program codes that are large or require heavy processing time. The problem is compounded with the continuously increasing number of device platforms and technology.

What is needed in the art is a framework that is required for development of applications independent of the platform of the device.

SUMMARY

The invention provides a platform-independent application development framework.

The framework comprising: a content interface configured to provide an Application Programming Interface (API) to program an application, the application comprising a programming code to be executed on one or more platforms, wherein the API is independent of the one or more platforms; an application environment configured to provide an infrastructure to program the application, wherein the infrastructure is independent of the one or more platforms; and one or more plug-in interfaces configured to provide an interface between the application environment and the one or more platforms.

The invention further provides a platform-independent application development framework. The framework comprising: a content interface configured to provide an Application Programming Interface (API) to program an application, the application comprising a programming code to be executed on one or more mobile device platforms, wherein the API is independent of the one or more mobile device platforms; an application environment configured to provide an infrastructure to program the application, wherein the infrastructure is independent of the one or more mobile device platforms; and one or more plug-in interfaces configured to provide an interface between the application environment and the one or more mobile device platforms.

The invention further provides an architecture for platform-independent development of an application, the application comprising a programming code to be executed on one or more mobile device platforms, the architecture comprising: an abstraction layer configured to: provide an Application Programming Interface (API) to program the application, wherein the API is independent of the one or more mobile device platforms; provide an infrastructure to program the application, wherein the infrastructure is independent of the one or more mobile device platforms; and provide an interface between the abstraction layer and the one or more mobile device platforms.

The invention further provides a method for platform independent development of an application. The method comprising: providing an Application Programming Interface (API) to program an application, the application comprising a programming code to be executed on one or more platforms, wherein the API is independent of the one or more platforms; providing an infrastructure to program the application, wherein the infrastructure is independent of the one or more platforms; and providing an interface between the application environment and the one or more platforms.

An article of manufacture for platform independent development of an application, comprising: an electronically accessible medium including instructions, that when executed by a processor, cause the processor to: provide an Application Programming Interface (API) to program an application, the application comprising a programming code to be executed on one or more platforms, wherein the API is independent of the one or more platforms; provide an infrastructure to program the application, wherein the infrastructure is independent of the one or more platforms; and provide an interface between the application environment and the one or more platforms.