Computer processing and programming method using dynamic block, streaming and synchronizing data handling -> Monitor Keywords
Fresh Patents
Monitor Patents Patent Organizer How to File a Provisional Patent Browse Inventors Browse Industry Browse Agents Browse Locations
     new ** File a Provisional Patent ** 
site info Site News  |  monitor Monitor Keywords  |  monitor archive Monitor Archive  |  organizer Organizer  |  account info Account Info  |  
08/16/07 | 101 views | #20070192768 | Prev - Next | USPTO Class 719 | About this Page  719 rss/xml feed  monitor keywords

Computer processing and programming method using dynamic block, streaming and synchronizing data handling

USPTO Application #: 20070192768
Title: Computer processing and programming method using dynamic block, streaming and synchronizing data handling
Abstract: A computer processing and programming method calls for creating a plurality of software entities (“molecules”) which can be dynamically configured to process data autonomously. The molecules can send and receive signals indicating the state of a molecule, whether or not a processing task is fulfilled, the results of a processing task, and whether or not the operation of a molecule is to be terminated, interrupted, reconfigured, or continued by creation of one or more “next” molecules. The molecules are created from a common set of software micro-components, which may be programmed in any programming languages to run in any operating system environments. The molecules may reside with a single computing resource, however, they are ideally suited to be deployed with distributed computing resources of different types on a network or in a parallel processing environment. An overall data processing task is performed by creating molecules in a “logic web” which can dynamically adapt to fulfill the task. Logic webs can be assigned to operate with different legacy systems, with applications programmed in different languages, and with data of any type stored in any format. As a result, data processing tasks in distributed or parallel processing environments can be performed much more efficiently, and entirely new types of data processing tasks can be undertaken. (end of abstract)
Agent: Leighton K. Chong Patent Attorney - Honolulu, HI, US
Inventors: Wylci Fables, Jore Park
USPTO Applicaton #: 20070192768 - Class: 719313000 (USPTO)
Related Patent Categories: Electrical Computers And Digital Processing Systems: Interprogram Communication Or Interprocess Communication (ipc), Interprogram Communication Using Message
The Patent Description & Claims data below is from USPTO Patent Application 20070192768.
Brief Patent Description - Full Patent Description - Patent Application Claims  monitor keywords

TECHNICAL FIELD

[0001] This invention generally relates to computer processing and programming methods, and more particularly, to methods that employ a new type of autonomous data handlers.

BACKGROUND OF INVENTION

[0002] Computer processing has been developed from its earliest theoretical foundations to the present as a machine-oriented paradigm in which machine instructions are executed by a central processing unit (CPU) to convert raw data and input in sequential steps to a useful output. To accomplish more and more complex tasks involving greater and greater amounts of data, the development of computer hardware has proceeded with exponential increases in speed, power, and capacity, now approaching the physical limits of the atomic scale and the speed and wavelength of light. The programming of complex tasks by linear programming methods increasingly requires intensive code writing which can take up millions of lines of code and is susceptible to errors and cross-code conflicts which can require intensive debugging efforts. It also inherently requires that the programming be accomplished in one chosen programming language for a selected operating system, leading to obsolescence and legacy systems.

[0003] Object oriented programming (OOP) methods were developed to break up large programming tasks in modules that are self-contained and self-executing. Modules that have been optimized for specific functions can thus be catalogued and re-used in modular form in a variety of larger programming tasks. However, OOP methods require the enforcement of class definition hierarchies over a programming environment as a whole, resulting in closed systems and libraries of OOP modules that must be recompiled to support other environments.

[0004] Parallel processing methods were developed over the past decade in the attempt to obtain increased capability by breaking up a processing task into parts executed by an array of CPUs in tandem. However, conventional approaches to parallel processing have required centralized management and control of programmed tasks which imposes stringent requirements in the coordination and synchronization of tasks. Parallel processing methods to date have also continued to employ linear programming methods which are intensive and susceptible to fault, especially when operating in parallel, and are captive to the chosen programming language and operating system.

[0005] In recent years, with the rise of large-scale distributed networks, there have been proposals to perform very large or complex tasks by breaking them up into small pieces and distributing them among cooperating computers on a network, often referred to as "distributed computing" or "network computing". The proposals for distributed computing represent a shift in the computing paradigm from the processing of tasks of high computational intensity towards one in which data are widely distributed among resources on a network and processed locally with lower-intensity CPUs through distributed efforts. However, since the same linear programming methods and centralized management and control have been used, the distributed computing paradigm to date has also required stringent programming and coordination of efforts to achieve worthwhile results. The failure of one or more individual processing efforts or time delays associated with communicating or coordinating with centralized processing management can produce bottlenecks which bog down the effectiveness of this approach.

[0006] One method which has utilized multiple asynchronous computer processes is called "Flow Based Programming" ("FBP"), as explained in greater detail in Flow-Based Programming: A New Approach To Application Development, by J. Paul Morrison, published by Von Nostrand Reinhold, New York, 1994. The reference describes Flow Based Programming as being based on three principles, "asynchronous processes, data packets with a lifetime of their own, and external definition of connections". In FBP applications are defined as networks of "black box" processes, which exchange data across predefined conditions. FBP is a process of stepping tagged data packets through networks of "black box" processes and thus is a data-centric process. The FBP approach needs extreme predictive capability to work well.

[0007] Therefore, it is a primary objective of the present invention to provide a computer processing and related programming method which decentralizes the management of computer processing tasks and allows distributed or parallel processing of data to proceed autonomously with adaptive options such as taking the most efficient path available.

[0008] It is a further object of the invention to provide a new programming method which is optimally designed to facilitate parallel or distributed data processing by avoiding the need for captive programming environments such that simultaneous use of multiple programming languages can be supported and centralized processing management is eliminated. It is also intended to reduce the intensity and case specific nature of programming required for complex processing tasks and the susceptibility, of such programming to fault.

Summary of Invention

[0009] In accordance with the present invention, a computer processing and related programming method calls for creating a plurality of software entities (referred to herein as "molecules") which can be dynamically configured to process data autonomously. The molecules can send and receive signals indicating the state of a molecule, whether or not a processing task is fulfilled, the results of a processing task, and whether or not the operation of a molecule is to be terminated, interrupted, reconfigured, or continued by creation of one or more "next" molecules. The molecules are created from a common set of software micro-components, which may be programmed in any programming languages to run in any operating system environments.

[0010] The molecules created for an overall processing task may reside with a single computing resource (CPU and database), however, they are ideally suited to be deployed with distributed computing resources of different types on a network or in parallel processing environments. Each molecule may be programmed in a programming language or languages suited to the computing resource where it is intended to operate. The molecules can function with a mixture of compiled or run-time compiled code, allowing them to run on a computing resource with only a portion of the process adapted to run on that computing resource. The molecules can signal each other and send and receive data using common network protocols. They operate to complete their respective data processing tasks autonomously until the overall data processing task is completed. An overall data processing task can be performed by creating molecules and structuring their operations and interactions in a "logic web" which can dynamically adapt to fulfill the task.

[0011] Adapted to a parallel processing environment, the molecules can be dynamically configured to run autonomously on parallel computing resources. A logic web is defined to allow efficient access of each molecule to a data object it is intended to process, and to any available processor of the parallel processor array as an interim CPU resource. The scheduling of processor access can be handled by a main controller program, or by a separate scheduler molecule or mini logic web. The molecules are programmed to signal their state, result, and termination, reconfiguration or generation of next molecules. The dispersed, autonomous operation of the molecules avoids the rigid scheduling structures and time delay conflicts in conventional parallel processing methods, in order to accomplish data processing tasks more efficiently and quickly.

[0012] As a software-configured entity, a molecule is comprised of the following basic software micro-components: a signal handler, an input handler, an interface handler, a method handler, an associated method, and an output handler. The signal handler is capable of sending and receiving signals for invoking other molecules and signaling other molecules and resources on the network. The input handler receives data input and puts the data in a queue. The interface handler determines when the inputs to the molecule satisfy a predefined condition in order to open a path to a method handler. The method handler processes the data sent from the input handler's queue according to a predefined method and sends an output to the output handler.

[0013] Adapted as a software programming method, a logic web of molecules is created to run on any available computing resources of any type and to process data in any format and in any location. Initialization files are programmed to create an initial host of molecules on the intended computing resources. The initial molecules operate to generate the next molecules in successive layers or waves representing a progression of program steps. Each initialization file is structured to assemble the software micro-components of a molecule from a library of standard micro-component types. These standard types are chosen objectively in terms of their function, and are not rigid class types in an OOP hierarchy. New types of software micro-components can readily be created as needed and programmed in the programming language suited to the environment they are intended to operate in.

[0014] With the computer processing and programming method of the invention, complex computational and data processing tasks can be performed by designing logic webs constructed of component molecules that utilize any available computing resources of any type and in any location including on a network. Thus, for example, a logic web can be designed with molecules to operate with different legacy systems, with applications programmed in different languages, and with data of any type stored in any format. As a result, data processing tasks in distributed or parallel processing environments can be performed much more efficiently, and entirely new types of data processing tasks can be undertaken.

[0015] Other objects, features, and advantages of the present invention will be explained in the following detailed description of the invention having reference to the appended drawings:

BRIEF DESCRIPTION OF DRAWINGS

[0016] FIGS. 1A is a general illustration of a software entity ("molecule") in accordance with the invention, and FIG. 1B illustrates deployment of logic webs of molecules in distributed computing or parallel processing environments.

[0017] FIG. 2 shows a preferred example of the structure for a software molecule of a basic type having signal handler, input handler, interface handler, method handler, and output handler micro-components.

[0018] FIG. 3 shows the logic operation of the interface handler of the software molecule in greater detail.

[0019] FIGS. 4A and 4B show examples of two method handling types, block method handling and streaming method handling, respectively.

[0020] FIGS. 5A-5F illustrate a comparison of the programming method of the invention with conventional object-oriented programming.

Continue reading...
Full patent description for Computer processing and programming method using dynamic block, streaming and synchronizing data handling

Brief Patent Description - Full Patent Description - Patent Application Claims
Click on the above for other options relating to this Computer processing and programming method using dynamic block, streaming and synchronizing data handling patent application.
###
monitor keywords

How KEYWORD MONITOR works... a FREE service from FreshPatents
1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored.
3. Each week you receive an email with patent applications related to your keywords.  
Start now! - Receive info on patent apps like Computer processing and programming method using dynamic block, streaming and synchronizing data handling or other areas of interest.
###


Previous Patent Application:
Reduced data transfer during processor context switching
Next Patent Application:
Program, method, and apparatus for managing applications
Industry Class:
Electrical computers and digital processing systems: interprogram communication or interprocess communication (ipc)

###

FreshPatents.com Support
Thank you for viewing the Computer processing and programming method using dynamic block, streaming and synchronizing data handling patent info.
IP-related news and info


Results in 3.74761 seconds


Other interesting Feshpatents.com categories:
Daimler Chrysler , DirecTV , Exxonmobil Chemical Company , Goodyear , Intel , Kyocera Wireless ,