Source: http://www.google.com/patents/US6434739?dq=7,468,661
Timestamp: 2014-12-19 11:05:58
Document Index: 700964696

Matched Legal Cases: ['Application No. 94', 'Application No. 94', 'Application No. 94', 'Application No. 94', 'Application No. 94', 'Application No. 95', 'Application No. 95', 'Application No. 95']

Patent US6434739 - Object oriented framework mechanism for multi-target source code processing - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsAn object oriented framework for source code processing provides an infrastructure that embodies the steps necessary to process source code and a mechanism to extend the framework to fit a particular scenario for processing source code. Certain core functions are provided by the framework, which interact...http://www.google.com/patents/US6434739?utm_source=gb-gplus-sharePatent US6434739 - Object oriented framework mechanism for multi-target source code processingAdvanced Patent SearchPublication numberUS6434739 B1Publication typeGrantApplication numberUS 08/636,211Publication dateAug 13, 2002Filing dateApr 22, 1996Priority dateApr 22, 1996Fee statusPaidAlso published asWO1997040443A1Publication number08636211, 636211, US 6434739 B1, US 6434739B1, US-B1-6434739, US6434739 B1, US6434739B1InventorsMichael John Branson, David Joseph Misheski, Stephen Matthew StupcaOriginal AssigneeInternational Business Machines CorporationExport CitationBiBTeX, EndNote, RefManPatent Citations (36), Non-Patent Citations (180), Referenced by (25), Classifications (8), Legal Events (6) External Links: USPTO, USPTO Assignment, EspacenetObject oriented framework mechanism for multi-target source code processingUS 6434739 B1Abstract An object oriented framework for source code processing provides an infrastructure that embodies the steps necessary to process source code and a mechanism to extend the framework to fit a particular scenario for processing source code. Certain core functions are provided by the framework, which interact with extensible functions provided by the framework user. The architecture of the framework allows a developer to select the native processing tool of their choice, and provides an infrastructure for using that processing tool with other platforms (e.g., targets, etc.) The extensible functions allow the processing tools of a new platform to be easily incorporated into the framework. The framework thus allows a programming environment with development on multiple platforms that targets multiple platforms, which may be easily customized to include new platforms and new processing tools.
5. The computer system of claim 2 wherein the framework further defines a candidate collector class, a dependency checker class, a currency checker class, and a command assembler class, and wherein the processing configuration class has a �has a� relationship with each of the candidate collector class, the currency checker class, and the dependency checker class, and has a using relationship with the command assembler class.
37. The program product of claim 35 wherein the framework further defines a candidate collector class, a dependency checker class, a currency checker class, and a command assembler class, and wherein the processing configuration class has a �has a� relationship with each of the candidate collector class, the currency checker class, and the dependency checker class, and has a using relationship with the command assembler class.
at least one candidate collector object including a second set of object methods that determine a set of initial candidate modules for processing; at least one dependency checker object including a third set of object methods that determine a set of all candidate modules for processing from the set of initial candidate modules; at least one currency checker object including a fourth set of object methods that determine a set of candidate modules for processing that are out of date from the set of all candidate modules; and at least one command assembler object including a fifth set of object methods that determine a set of all commands for processing the at least one source code module. 40. The object oriented framework mechanism of claim 39 wherein the framework mechanism further defines a processing configuration class that has a �has a� relationship to each of the candidate collector class, the dependency checker class, and the currency checker class, and that has a using relationship with the command assembler class.
56. The program product of claim 52 wherein the framework further defines a candidate collector class, a dependency checker class, a currency checker class, and a command assembler class, and wherein the processing configuration class has a �has a� relationship with each of the candidate collector class, the currency checker class, and the dependency checker class, and that has a using relationship with the command assembler class.
at least one processing configuration object that defines at least one processing configuration, the processing configuration object including a first set of object methods to collect a list of candidate source code modules including the at least one source code module, to check the dependencies of the at least one source code module to other modules in the source code program, to check the currency of the at least one source code module, and to assemble commands for the processing configuration to cause the at least one source code module to be processed; at least one candidate collector object including a second set of object methods that determine a set of initial candidate modules for processing; at least one dependency checker object including a third set of object methods that determine a set of all candidate modules for processing from the set of initial candidate modules; at least one currency checker object including a fourth set of object methods that determine a set of candidate modules for processing that are out of date from the set of all candidate modules; and at least one command assembler object including a fifth set of object methods that determine a set of all commands for processing the at least one source code module. 60. The object oriented framework mechanism of claim 59 wherein the framework mechanism further defines a candidate collector class, a dependency checker class, a currency checker class, and a command assembler class, and wherein the processing configuration class has a �has a� relationship with each of the candidate collector class, the currency checker class, and the dependency checker class, and that has a using relationship with the command assembler class.
BACKGROUND OF THE INVENTION The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices. Due to competitive forces and differing performance requirements, a variety of different types of computers (i.e., platforms) have evolved. One of the primary differences between platforms is the operating system the platform uses. Each operating system provides different features, and the characteristics of platforms vary according to the specific operating system employed. Examples of popular operating systems include AIX, OS/2, MS-DOS, and Windows.
Source code in any compiled language needs to be processed. In most cases, programs are not completely recompiled every time they are changed. Only the modules that are affected by the changes are recompiled to save on time and resources. Programming tools typically include processing tools that are generically referred to as �make tools.� A make tool analyzes the various modules that comprise a computer program and only compile those modules that need to be compiled. Various different make tools exist for different platforms. For example, AIX has a processing tool known simply as �make.� OS/2 has a similar processing tool called �nmake.� Make tools are included in the group of source code processing tools that may be implemented within the framework. Make tools are also commonly referred to as processing tools or reprocessing tools. As used herein, the terms processing tool and reprocessing tool are used interchangeably to denote any type of programming tool (such as a make tool) that is typically specific to a particular programming environment (i.e., development platform).
The term �module� as used herein is a generic term for any portion of source code that may need to be processed. It may refer to a procedural routine or to an object. While the preferred embodiment herein is implemented using object oriented technology, the term module is used to distinguish a portion of source code that may need processing from objects in the framework.
SUMMARY OF THE INVENTION According to the present invention, an object oriented framework for source code processing provides an infrastructure that embodies the steps necessary to process source code and a mechanism to extend the framework to fit a particular scenario for processing source code. Certain core functions are provided by the framework, which interact with extensible functions provided by the framework user. The architecture of the framework allows a developer to select the native processing tool of their choice, and provides an infrastructure for using that processing tool with other platforms (eg., targets, etc.) The extensible functions allow the processing tools of a new platform to be easily incorporated into the framework. The framework thus allows a programming environment with development on multiple platforms that targets multiple platforms, which may be easily customized to include new platforms and new processing tools.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a category diagram of an example framework mechanism,
DESCRIPTION OF THE PREFERRED EMBODIMENTS Overview�Object-Oriented Technology
There has been an evolution of terms and phrases which have particular meaning to those skilled in the art of OO design. However, the reader should note that one of loosest definitions in the OO art is the definition of the wordframework. The word framework means different things to different people. Therefore, when comparing the characteristics of two supposed framework mechanisms, the reader should take care to ensure that the comparison is indeed �apples to apples.� As will become more clear in the forthcoming paragraphs, the term framework is used in this specification to describe an OO mechanism that has been designed to have core function and extensible function. The core function is that part of the framework mechanism that is not subject to modification by the framework purchaser. The extensible function, on the other hand, is that part of the framework mechanism that has been explicitly designed to be customized and extended by the framework purchaser.
ZAF�An Illustrative Framework Mechanism
While the classes and categories within ZAF have been described as either core functions or extensible functions, it is important to note that the term �core function� as used herein broadly relates to requirements that cause the framework to operate in the desired manner. In simple terms, core functions of a framework are the functions that any program that uses the framework will perform. The requirements of core functions may be imposed by the structure of the framework (e.g., by designating certain classes as core functions) or may be imposed by functional requirements that dictate how a framework consumer may utilize the framework. Thus, core functions include not only the classes and class relationships that are designated as core, but may also include extensible classes that must be implemented in particular ways for the framework to function properly. Said another way, while extensible function is that part of the framework that is designed to be customized by the framework consumer, the nature and extent of the customization is governed by the requirements of the framework's core function (i.e., the overall framework function imposed by the structure and functional requirements of the framework). For example, the animals class has been designed as extensible function of ZAF so that ZAF can be customized to accommodate different types of animals. However, the ability to customize the extensible animals class does not imply that the nature of the customization can violate the basic structure imposed by the core function of ZAF (e.g., by customizing the animal class to the extent that it can no longer be reasonably said to represent a type of animal).
Once the list of current zoo keepers has been returned to object Zelda, object Zelda instructs each zoo keeper in the list to check the animals by calling the check_animals( ) operation of each zoo keeper object [only the call to Tina the Temp. Checker is shown�step 3]. Please note that object Zelda did not need to understand the types of zoo keepers that were in the zoo keeper list, the number of zoo keeper objects in the list, or the specialized characteristics of any one zoo keeper object. Object Zelda uses the same interface (i.e., the check_animals( ) operation) to communicate with each zoo keeper object. It is then up to the individual zoo keeper objects to perform the task for which they have been created. Each zoo keeper object performs its assigned task through use of its own check_animals( ) operation. For example, object Tina's check_animals( ) operation retrieves a list of current animals from the animal registry object by calling the list_animals( ) operation [step 4] and then a list of containment units from the containment unit register object by calling the list_cont_units( ) operation [step 6]. Upon examining the animal list, object Tina's check_animals( ) operation determines that there are only two animals currently registered in the zoo, Sam the Snake [object 728] and Simba the Lion [object 718].
DETAILED DESCRIPTION FIG. 8 shows a block diagram of the computer system of the present invention. The computer system of the preferred embodiment is a computer system such as an AIX platform. However, those skilled in the art will appreciate that the mechanisms and apparatus of the present invention apply equally to any computer system, regardless of whether the computer system is a complicated multi-user computing apparatus or a single user workstation. As shown in the exploded view of FIG. 8, computer system 800 comprises main or central processing unit (CPU) 810 connected to main memory 820, mass storage interface 830, terminal interface 840, and network interface 850. These system components are interconnected through the use of a system bus 860. Mass storage interface 830 is used to connect mass storage devices (such as DASD device 855) to computer system 800. One specific type of DASD device is a floppy disk drive, which may store data to and read data from a floppy diskette 895.
Main memory 820 contains application programs 822, objects 824, data 826, and an operating system 828. Computer system 800 utilizes well known virtual addressing mechanisms that allow the programs of computer system 800 to behave as if they only have access to a large, single storage entity instead of access to multiple, smaller storage entities such as main memory 820 and DASD device 855. Therefore, while application programs 822, objects 824, and operating system 828 are shown to reside in main memory 820, those skilled in the art will recognize that these programs are not necessarily all completely contained in main memory 820 at the same time. (It should also be noted that the term �computer system memory� is used herein to generically refer to the entire virtual memory of computer system 800.)
The classes have been broken down into four categories: the Processing Configurations (PC) category, the Processing Mechanisms (PM) category, the Multi-Platform Enablement (MPE) category, and the Utilities category. The Utilities category is a core category (as indicated by the �C� label), meaning that the classes in the utilities category may not be modified by a user of framework 870. The remaining categories are extensible categories (as indicated by the �E� label), meaning that users may extend the classes in these categories by defining and implementing classes that are subclasses of framework-defined classes. The Processing Configurations category has a using relationship with the Processing Mechanisms category and the Multi-Platform Enablement category, indicating that classes within the Processing Configurations category invoke the methods provided by the classes in these categories. In addition, the Processing Mechanisms category has a using relationship with the Utilities category. Note that these relationships between categories are core relationships (as indicated by the �C� label), meaning that the framework user cannot modify these relationships.
FIG. 13 illustrates the relationships of the ProcessingConfiguration class to other classes in the framework. ProcessingConfiguration is an extensible class that contains the methods shown. ProcessingConfiguration is the class that a user of the framework will use to define a specific programming environment that needs to be supported by the framework. ProcessingConfiguration has a �has by reference� relationship to CandidateCollector, DependencyChecker, CurrencyChecker, Distributor, and Platform, indicating that a ProcessingConfiguration will include one or more objects from each of these classes. ProcessingConfiguration has a using relationship with the PartList parameterized core class and the CommandAssembler extensible class. All of the relationships between classes in FIG. 13 are core relationships, that a user of the framework may not alter. SampleProcessingConfiguration is an example of a user-defined processing configuration that is defined by subclassing from the ProcessingConfiguration extensible class.
Classes included in the Multi-Platform Enablement category are illustrated in FIG. 14. A Platform class is defined that is an extensible class of the framework. The platform class has a �has by reference� relationship to a FileAgent class, which is an abstract extensible class of the framework. The relationship between the Platform class and the FileAgent class is a core relationship. The classes DistributedFileSystem and FileTransferMechanism are shown as examples of user-extended classes that are defined by subclassing from the FileAgent abstract class.
As the similarity of the two examples above illustrate, the framework provides an extremely flexible and powerful tool for implementing any number of processing configurations by simply defining objects that implement the features specific to a particular processing configuration. For example, any number of processing tools may be enabled by the framework delegating to their native functions for candidate collection, dependency checking, currency checking, and command assembling, which functions have been encapsulated in a concrete subclass of a framework class. The framework even gives the capability to mix and match between processing tools. Thus, the candidate collection may be from one tool, the dependency checking from a different tool, and so on. The preferred embodiment disclosed herein implements the native functions of one tool so that a programmer may use that tool regardless of the platform the code is stored on, the platform on which he or she is processing code, or on which the code will eventually run. This also gives the programmer the possibility of processing source code in a �stand alone� configuration, when detached from the normal programming environment, by simply running the native processing tools of the processing platform. If the processing configuration the programmer has been using in the programming environment delegates to the native processing tools, the programmer will have little trouble converting from the normal programming environment to stand-alone operation. In addition to enabling a large number of processing tools, the framework allows any combination of platforms to be specified for development, library, processing, and target. Thus, the framework could readily support a programming environment on an Apple McIntosh platform, with source code stored on a UNIX library platform, with processing on an AIX platform, with Windows 95 as the target platform.
An other relationship specified by a class diagram is an instantiation relationship. An instantiation relationship represents an instance of a class such as a particular implementation of a class as supported by a programming language. For example, a class called �animal� can have multiple instantiations comprising lions, tigers, and bears. An instantiation of a class is represented by a dashed association line with an arrowhead pointing from an instance of a class to the general class.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4943932Apr 15, 1987Jul 24, 1990Cimflex Teknowledge CorporationArchitecture for composing computational modules uniformly across diverse developmental frameworksUS5057996Jun 29, 1989Oct 15, 1991Digital Equipment CorporationWaitable object creation system and method in an object based computer operating systemUS5101364Feb 9, 1990Mar 31, 1992Massachusetts Institute Of TechnologyMethod and facility for dynamic video composition and viewingUS5119475Aug 29, 1991Jun 2, 1992Schlumberger Technology CorporationObject-oriented framework for menu definitionUS5181162Dec 6, 1989Jan 19, 1993Eastman Kodak CompanyDocument management and production systemUS5195172Jul 2, 1990Mar 16, 1993Quantum Development CorporationSystem and method for representing and solving numeric and symbolic problemsUS5226161Aug 31, 1992Jul 6, 1993Wang Laboratories, Inc.Integration of data between typed data structures by mutual direct invocation between data managers corresponding to data typesUS5247693Nov 17, 1992Sep 21, 1993The Foxboro CompanyComputer language structure for process control applications and method of translating same into program code to operate the computerUS5249270Mar 29, 1991Sep 28, 1993Echelon CorporationDevelopment system protocolUS5257384Sep 9, 1991Oct 26, 1993Compaq Computer CorporationAsynchronous protocol for computer system managerUS5261080Aug 28, 1992Nov 9, 1993Wang Laboratories, Inc.Matchmaker for assisting and executing the providing and conversion of data between objects in a data processing system storing data in typed objects having different data formatsUS5274572Mar 6, 1990Dec 28, 1993Schlumberger Technology CorporationMethod and apparatus for knowledge-based signal monitoring and analysisUS5276775Oct 13, 1992Jan 4, 1994Texas Instruments Inc.System and method for building knowledge-based applicationsUS5287447Jun 28, 1991Feb 15, 1994International Business Machines CorporationMethod and system for providing container object attributes to a non-container objectUS5293470Jan 28, 1991Mar 8, 1994International Business Machines CorporationData processing system for defining and processing objects in response to system user operationsUS5297283Oct 16, 1992Mar 22, 1994Digital Equipment CorporationObject transferring system and method in an object based computer operating systemUS5315703Dec 23, 1992May 24, 1994Taligent, Inc.Object-oriented notification framework systemUS5325533Jun 28, 1993Jun 28, 1994Taligent, Inc.Engineering system for modeling computer programsUS5367633Jan 11, 1994Nov 22, 1994Taligent, Inc.Objected oriented notification framework systemUS5369766Mar 25, 1993Nov 29, 1994Taligent, Inc.Object-oriented loader system with support for different load formatsUS5379430Aug 4, 1993Jan 3, 1995Taligent, Inc.Computer implemented methodUS5388264Sep 13, 1993Feb 7, 1995Taligent, Inc.Object oriented framework system for routing, editing, and synchronizing MIDI multimedia information using graphically represented connection objectUS5390325Dec 23, 1992Feb 14, 1995Taligent, Inc.Automated testing systemUS5396626Aug 4, 1993Mar 7, 1995Taligent, Inc.Method in a computer systemUS5398336Jul 16, 1993Mar 14, 1995Consilium, Inc.Object-oriented architecture for factory floor managementUS5475845 *Sep 28, 1994Dec 12, 1995Taligent, Inc.Wrapper system for interfacing an object-oriented application to a procedural operating systemUS5553282Dec 9, 1994Sep 3, 1996Taligent, Inc.Software project history database and method of operationUS5630131 *Nov 14, 1994May 13, 1997Object Technology Licensing Corp.Method and apparatus for importing and exporting archive files for a graphical user interfaceJPH088777A Title not availableJPH0744365A Title not availableJPH06103075A Title not availableJPH07225685A Title not availableWO1995000901A1Jan 3, 1994Jan 5, 1995Taligent IncIncremental build systemWO1995000903A1Jan 6, 1994Jan 5, 1995Taligent IncProgram modeling systemWO1995000904A1Jan 6, 1994Jan 5, 1995Taligent IncIncremental linker systemWO1995017720A1May 17, 1994Jun 29, 1995Taligent IncService creation in an object oriented system* Cited by examinerNon-Patent CitationsReference1Abstract for EPO Patent No. 619544, S. Danforth, Oct. 12, 1994, "Language-Neutral Object-Oriented Programming".2Abstract for U.S. Patent No. 5,119,475, Schoen et al., Jun. 2, 1992, "Object-Oriented Framework for Menu Definition".3Abstract for U.S. Patent No. 5,369,766, Heninger et al., Nov. 29, 1994, "Object-Oriented Application Processing Apparatus".4Abstract for U.S. Patent No. 5,388,264, Milne et al., Feb. 7, 1995, "Object-Oriented Framework System for Enabling Multimedia Presentation with Routing and Editing of MIDI Information".5Abstract for WIPO Patent Application No. 94/15281, Anderson et al., Jul. 7, 1994, "Atomic Command Object-Oriented System Software Platform".6Abstract for WIPO Patent Application No. 94/15282, Anderson et al., Jul. 7, 1994, "Dialog System Object-Oriented System Software Platform".7Abstract for WIPO Patent Application No. 94/19740, Goldsmith et al., Sep. 1, 1994, "Framework Processor of Object-Oriented Application".8Abstract for WIPO Patent Application No. 94/19751, Anderson et al., Sep. 1, 1994, "Concurrent Framework Processing Apparatus for Application Users".9Abstract for WIPO Patent Application No. 94/19752, Anderson et al., Sep. 1, 1994, "Concurrent Framework Processing Apparatus for Two or More Users".10Abstract for WIPO Patent Application No. 95/01610, Koko et al., Jan. 12, 1995, "Object Oriented Product Structure Management in Computer-Aided Product Design".11Abstract for WIPO Patent Application No. 95/02219, Helgeson et al., Jan. 19, 1995, "Distributed Computation Based on Movement, Execution and Insertion of Processes in Network".12Abstract for WIPO Patent Application No. WO 94/23364, Heninger et al., Oct. 13, 1994, "Framework Processing Apparatus for Application Software".13Abstract for WIPO Patent Application No. WO 95/04966, F. T. Nguyen, Feb. 16, 1995, "Automatic Management of Components in Object-Oriented System".14Abstract for WIPO Patent No. 94/20912, Sep. 15, 1994, "Object-Oriented System for Managing Financial Instruments".15Abstract fpr WIPO Patent Application No. 95/04967, Feb. 16, 1995, "Access Method to Data Held in Primary Memory Based Data Base".16Abstract from EPO Patent Application No. EP 622730, "Encapsulation of Extracted Portions of Documents Into Objects", M. A. Malamud, Nov. 2, 1994.17Abstract from U.S. Patent No. 5,371,891, "Object Constructions in Compiler in Object Oriented Programming Language", J. Gray et al., Dec. 6, 1994.18Abstract from WIPO Patent Application No. WO 94/15286, Goldsmith et al., Jul. 7, 1994, "Object-Oriented Framework for Object Operating System".19Abstract from WIPO Patent Application No. WO 9415285, Jul. 7, 1994, "Object-Oriented Notification Framework System", D. R. Anderson et al.20Abstract from WIPO Patent Application No. WO 9422081, Sep. 29, 1994, "Hardware-Independent Interface for Interrupt Processing", G. O. Norman et al.21Abstract No. 95-091003/12, "Flexible Multi-Platform Partitioning for Computer Applications in Object Oriented System".22I. S. Law, "Liaison: An Intelligent Rule Driven Interface for Software Engineering Environments," Proceedings of the Annual International Computer Software and Applications Conference (COMPSAC), Chicago, Oct. 5-7, 1988, pp. 402-409.23Inspec Abastract No. 4152687, from M. Wolczko, 1992, "Encapsulation, Delegation and Inheritance in Object-Oriented Languages".24Inspec Abstract No. 4050569, from Di Giovanni et al., 1990, "HOOD Nets".25Inspec Abstract No. 4060084, from Muller et al., 1990, "ODICE: Object-Oriented Hardware Description in CAD Environment".26Inspec Abstract No. 4067033, from Shaw et al., 1990, "Experience with the ET++ Application Framework".27Inspec Abstract No. 4077440, from A. Mahler, 1991, "Organizing Tools in a Uniform Environment Framework".28Inspec Abstract No. 4090970, from P. Kougiouris, 1991, "Device Management Framework for an Object-Oriented Operating System".29Inspec Abstract No. 4117514, from Wuwongse et al., 1991, "An Object-Oriented Approach to Model Management".30Inspec Abstract No. 4234438, from Madany et al., 1991, "Organizing and Typing Persistent Objects Within an Object-Oriented Framework".31Inspec Abstract No. 4244023, from George et al., 1991, "An Object-Oriented Data Model to Represent Uncertainty in Coupled Artificial Intelligence-Database Systems".32Inspec Abstract No. 4258051, from Rundensteiner et al., 1992, "Set Operations in Object-Based Data Models".33Inspec Abstract No. 4258492, from M. Ball, 1992, "Inside Templates: Implementing C++ Strategies".34Inspec Abstract No. 4270125, from Becker et al., 1991, "Reusable Object-Oriented Specifications for Decision Support Systems".35Inspec Abstract No. 4270361, from Artale et al., 1991, "Introducing Knowledge Representation Techniques in Database Models".36Inspec Abstract No. 4275693, from Giannotti et al., 1991, "Non-Determinism in Deductive Databases".37Inspec Abstract No. 4275698, from Van den Bussche et al., 1991, "Evaluation and Optimization of Complex Object Selections".38Inspec Abstract No. 4275707, from Tsukamoto et al., 1991, "DOT: A Term Representation Using DOT Algebra for Knowledge-Bases".39Inspec Abstract No. 4281362, from Marhshall et al., 1991, "Using VDM within an Object-Oriented Framework".40Inspec Abstract No. 4287814, from Natarajan et al., 1992, "Issues in Building Dynamic Real-Time Systems".41Inspec Abstract No. 4297404, from Tanaka et al., 1992, "Two-Level Schemata and Generalized Links for Hypertext Database Models".42Inspec Abstract No. 4298324, from S. Nichol, 1992, "Extending Turbo Vision".43Inspec Abstract No. 4302722, from Eggenschwiler et al., 1992, "ET++SwapsManager: Using Object Technology in the Financial Engineering Domain".44Inspec Abstract No. 4318465, from P. Madany, 1992, "Object-Oriented Framework for File Systems".45Inspec Abstract No. 4331060, from Lau et al., 1992, "An Object-Oriented Class Library for Scalable Parallel Heuristic Search".46Inspec Abstract No. 4341376, from Bertino et al., 1992, "Optimization of Object-Oriented Queries Using Path Indices".47Inspec Abstract No. 4356300, from Bertino et al., 1993, "Path-Index: An Approach to the Efficient Execution of Object-Oriented Queries".48Inspec Abstract No. 4366189, from Holt et al., 1992, "A Framework for Using Formal Methods in Object-Oriented Software Development".49Inspec Abstract No. 4387201, from Chu et al., 1992, "A Pattern Based Approach of Integrating Data and Knowledge to Support Cooperative Query Answering".50Inspec Abstract No. 4391388, from Thomas et al., 1992, "A Generic Object-Oriented Concurrency Mechanism for Extensibility and Reuse of Synchronization Components".51Inspec Abstract No. 4395549, from Hogstrom et al., 1992, "Portability and Data Structures in Scientific Computing-Object-Oriented Design of Utility Routines in Fortran".52Inspec Abstract No. 4400350, from Y. Shoham, 1993, "Agent-Oriented Programming".53Inspec Abstract No. 4408394, from Allen et al., 1992, "GEM: Global Event Management in CAD Frameworks".54Inspec Abstract No. 4411998, from Yi Deng et al., 1992, "Unifying Multi-Paradigms in Software System Design".55Inspec Abstract No. 4417563, from E. Maim, 1992, "Recognizing Objects from Constraints".56Inspec Abstract No. 4417604, from Kraiem et al., 1992, "Mapping of Conceptual Specifications Into Object-Oriented Programs".57Inspec Abstract No. 4425343, from Demurjian et al., 1993, "Programming Versus Databases in Object-Oriented Paradigm".58Inspec Abstract No. 4426852, from Benveniste et al., 1992, "Concurrent Programming Notations in the Object-Oriented Language Arche".59Inspec Abstract No. 4447153, from Klein et al., 1992, "An Object-Oriented Framework for Curves and Surfaces".60Inspec Abstract No. 4459325, from Kesim et al., 1992, "On the Evolution of Objects in a Logic Programming Framework".61Inspec Abstract No. 4512593, from H. Sakai, 1993, "A Method for Contract Design and Delegation in Object Behavior Modeling".62Inspec Abstract No. 4525743, from Hakimzadeh et al., 1993, "Instance Variable Access Locking for Object-Oriented Databases".63Inspec Abstract No. 4528985, from Beneventano et al., 1993, "Taxonomic Reasoning with Cycles in LOGIDATA+".64Inspec Abstract No. 4534330, from Istavrinos et al., 1992, "Experiences with an Object-Oriented Mapper for Coherent Distributed Shared Memory".65Inspec Abstract No. 4534334, from Campbell et al., 1991, "A Technique for Documenting the Framework of an Object-Oriented System".66Inspec Abstract No. 4540729, from Bailes et al., "The Ecology of Class Refinement".67Inspec Abstract No. 4550414, from Parrish et al., 1993, "Automated Flow Graph-Based Testing of Object-Oriented Software Modules".68Inspec Abstract No. 4565630, from Karpovich et al, 1993, "A Parallel Object-Oriented Framework for Stencil Algorithms".69Inspec Abstract No. 4566447, from J. Rossazza, 1992, "An Object-Centered Fuzzy Representation".70Inspec Abstract No. 4588834, from G. Olander, 1992, "Chembench: Redesign of a Large Commercial Application Using Object-Oriented Techniques".71Inspec Abstract No. 4588839, from L. Fisher, 1992, "Constructing a Class Library for Microsoft Windows".72Inspec Abstract No. 4593721, Periyasamy et al., 1993, "A Formal Framework for Design and Verification of Robotic Agents".73Inspec Abstract No. 4596323, from Frank et al., 1993, "An Integrated Environment for Designing Object-Oriented Enterprise Models".74Inspec Abstract No. 4603430, from G. Booch, 1994, "Designing an Application Framework".75Inspec Abstract No. 4613481, from Thieme et al., 1993, "Schema Integration in Object-Oriented Databases".76Inspec Abstract No. 4618974, from Bowers, 1993, "Some Principles for the Encapsulation of the Behaviour of Aggregate Objects".77Inspec Abstract No. 461931, from Islan et al, 1993, "Uniform Co-Scheduling Using Object-Oriented Design Techniques".78Inspec Abstract No. 4622794, from Campbell et al., 1993, "A Technique for Documenting the Framework of an Object-Oriented System".79Inspec Abstract No. 4626386, from Arora et al., 1993, "Building Diverse Environments with PCTE Workbench".80Inspec Abstract No. 4642214, from Marshall et al., 1992, "Using VDM Within an Object-Oriented Framework".81Inspec Abstract No. 4647921, from Uhorchak et al., 1993, "An Object-Oriented Class Library for Creating Engineering Graphs Using PHIGS".82Inspec Abstract No. 4664213, "Maintaining Information about Persistent Replicated Objects in a Distributed System", 1993 IEEE Conference on Distributed Computing Systems.83Inspec Abstract No. 89003142, from Tenma et al., 1986, "A System for Generating Language-Oriented Editors".84Inspec Abstract No. B90075006, from Gossain et al., 1989, "Designing a Class Hierarchy for Domain Representation and Reusability".85Inspec Abstract No. B91052096, from Cusack et al., 1990, "Object-Oriented Specification in LOTOS and Z, or My Cat Really is Object-Oriented!".86Inspec Abstract No. B9310-6210L-099, "Templates, Types and Classes in Open Distributed Processing", 1993.87Inspec Abstract No. B9409-6210M-025, from Hellemans et al., 1994, "An Object-Oriented Approach to Dynamic Service Descriptions".88Inspec Abstract No. B9412-6210Q-016, from Oingzhong et al., 1992, "An Object-Oriented Model for Ingelligent Networks".89Inspec Abstract No. B9503-8110B-023, from Mautref et al., 1995, "An Object-Oriented Framework for the Development of Interactive Decision Support Systems".90Inspec Abstract No. C81005505, from Mylopoulos et al., 1980, "Some Features of the TAXIS Data Model".91Inspec Abstract No. C84005713, from Meyer et al., 1983, "Towards a Two-Dimensional Programming Environment".92Inspec Abstract No. C86024804, from Greenspan et al., 1986, "A Requirements Modeling Language and Its Logic".93Inspec Abstract No. C86039588, from K. Fukunaga., 1985; "PROMPTER: A Knowledge Based Support Tool for Code Understanding".94Inspec Abstract No. C87007043, from Whitted et al., 1986, "Exploiting Classes in Modeling and Display Software".95Inspec Abstract No. C88007447, from P. Allen, 1987, "A Framework for Implementing Multisensor Robotic Tasks".96Inspec Abstract No. C88013915, from Woelk et al., 1987, "Multimedia Information Management in an Object-Oriented Database System".97Inspec Abstract No. C89014870, from R. King, 1988, "Semantic and Object-Oriented Database Support for Software Environments".98Inspec Abstract No. C89033226, from Corradi et al., 1988, "PO: An Object Model to Epxress Parallelism".99Inspec Abstract No. C89039001, from Brophy et al., 1989, "A Framework for Multiple, Concurrent Graphical Representation".100Inspec Abstract No. C89049257, from Madany et al., 1989, "Class Hierarchy for Building Stream-Oriented File Systems".101Inspec Abstract No. C89056727, from Campbell et al., 1989, "Principles of Object-Oriented Operating System Design".102Inspec Abstract No. C89056859, from Hull et al, 1989, "On Accessing Object-Oriented Databases: Expressive Power, Complexity, and Restrictions".103Inspec Abstract No. C89062837, from Pasquier-Boltuck et al., 1988, "Prototyping an Interactive Electronic Book System Using an Object-Oriented Approach".104Inspec Abstract No. C90007733, from Weinand et al., 1989, "Design and Implementation of ET++, A Seamless Object-Oriented Application Framework".105Inspec Abstract No. C90030609, from Forde et al., 1990, "Object-Oriented Finite Element Analysis".106Inspec Abstract No. C90034818, from Q. Chen, 1988, "Extending the Object-Oriented Paradigm for Supporting Complex Objects".107Inspec Abstract No. C90047457, from Yokoyama et al., 1990, "A Constraint-Based and Object-Oriented Knowledge Representation".108Inspec Abstract No. C90052277, from I. Tervonen, 1990, "Object-Oriented Development as a Multiview Software Construction Methodology".109Inspec Abstract No. C90052627, from Schrefl et al., 1988, "A Knowledge-Based Approach to Overcome Structural Differences in Object Oriented Database Integration".110Inspec Abstract No. C91003997, from J. Muys-Vasovic, 1989, "MacApp: An Object-Oriented Application Framework".111Inspec Abstract No. C91004708, from Bertino et al., 1990, "Optimization of Queries Using Nested Indices".112Inspec Abstract No. C91010951, from T. Helton, 1990, "Level5 Object".113Inspec Abstract No. C91024852, from Pierra et al., 1990, "An Object Oriented Approach to Ensure Portability of CAD Standard Parts Libraries".114Inspec Abstract No. C91041980, from Choi et al., 1991, "Graph Interpretation of Methods: A Unifying Framework for Polymorphism in Object-Oriented Programming".115Inspec Abstract No. C91042655, from Q. Li, 1991, "Extending Semantic Object Model: Towards More Unified View of Information Objects".116Inspec Abstract No. C91042802, from T. Yokoyama, 1990, "An Object-Oriented and Constraint-Based Knowledge Representation System for Design Object Modeling".117Inspec Abstract No. C91053151, from E. Cusack, 1991, "Refinement, Conformance and Inheritance".118Inspec Abstract No. C91053475, from Queinnec et al., 1988, "An Open Ended Data Representation Model for EU-LISP".119Inspec Abstract No. C91058815, from Menga et al., 1990, "G++: An Environment for Object Oriented Analysis and Prototyping".120Inspec Abstract No. C91064580, from Gamma et al., 1989, "Integration of a Programming Environment into ET++-A Case Study".121Inspec Abstract No. C91064787, from Madany et al, 1989, "A Class Hierarchy for Building Stream-Oriented File Systems".122Inspec Abstract No. C91072016, from A. Lane, 1991, "/DOS/C++-Application Frameworks".123Inspec Abstract No. C91072574, from Hemery et al., "An Analysis of Communication and Multiprogramming in the Helios Operating System".124Inspec Abstract No. C91072815, from Holtkamp et al, 1990, "DEMOM-A Description Based Media Object Data Model".125Inspec Abstract No. C9402-6150G-002, from Bruegge et al., 1993, "A Framework for Dynamic Program Analyzers".126Inspec Abstract No. C9403-6180-027, 1991, "An Event-Object Recovery Model for Object-Oriented User Interfaces" from Proceedings of ACMSymposium on User Interface Software & Technology.127Inspec Abstract No. C9405-6180G-031, from Woyak et al., 1993, "A Motif-Like Object-Oriented Interface Framework Using PHIGS".128Inspec Abstract No. C9406-0310F-011, 1993, "Cost-Benefit Analysis of Object-Oriented Technology".129Inspec Abstract No. C9406-6110J-007, from J. D. Grimes, 1993, "Objects 101-An Implementation View", Proceedings of COMPCON 1994.130Inspec Abstract No. C9406-6110J-029, "A Comparison of Object-Oriented Analysis and Design Methods", Proceedings of C++ World 1993.131Inspec Abstract No. C9406-6115-048, 1993, "Constructing Multi-View Editing Environments Using MViews".132Inspec Abstract No. C9406-6150N-015, from Schmidt et al., 1994, "The Service Configurator Framework: An Extensible Architecture for Dynamically Configuring Concurrent, Multi-Service Network Daemons".133Inspec Abstract No. C9406-7490-012, "A Discrete-Event Object-Oriented Modeling Environment for Sawmill Simulation".134Inspec Abstract No. C9407-6140D-014, from Satoh et al., 1994, Semantics for a Real-Time Object-Oriented Programming Language.135Inspec Abstract No. C9407-7420D-045, from Desai et al., "Controller Structure Definition Via Intelligent Process Control".136Inspec Abstract No. C9408-6110B-016, from Chen et al., 1994, "An Experimental Study of Using Reusable Software Design Frameworks to Achieve Software Reuse".137Inspec Abstract No. C9408-6110J-011, from Gyu-Chung et al., 1993, "System Methodologies of Object-Oriented Programs".138Inspec Abstract No. C9408-7420-021, from Pirklbauer et al., 1994, "Object-Oriented Process Control Software".139Inspec Abstract No. C9409-6180-059, from Wang et al., 1993, "A Framework for User Customization".140Inspec Abstract No. C9410-6180G-015, from Eichelberg et al., 1993, "Integrating Interactive 3D-Graphics into an Object-Oriented Application Framework".141Inspec Abstract No. C9411-6115-035, from Mili et al., 1991, "SoftClass: An Object-Oriented Tool for Software-Reuse".142Inspec Abstract No. C9411-6130B-108, from Mili et al., 1992, "Building a Graphical Interface for a Reuse-Oriented CASE Tool".143Inspec Abstract No. C9411-6160J-011, from Odberg et al., 1992, "A Framework for Managing Schema Versioning in Object-Oriented Databases".144Inspec Abstract No. C9411-7100-029, from C. Le Pape, 1994, "Implementation of Resource Constraints in ILOG Schedule: A Library for the Development of Constraint-Based Scheduling Systems".145Inspec Abstract No. C9412-6110B-221, Berghel et al., 1992, "A Generic Object-Oriented Concurrency Mechanism for Extensibility and Reuse of Synchronization Components".146Inspec Abstract No. C9412-6110J-006, from Lau et al., 1993, "Using SOM for Tool Integration".147Inspec Abstract No. C9412-6110J-014 from Griss et al., 1994, "Object-Oriented Reuse".148Inspec Abstract No. C9412-6160J-025 from J. Livari, 1994, "Object-Oriented Information Systems Analysis: A Comparison of Six Object-Oriented Analysis Methods".149Inspec Abstract No. C9412-7330-186, from Righter et al., 1994, "An Object-Oriented Characterization of Spatial Ecosystem Information".150Inspec Abstract No. C9412-7810-003, from Jung et al., 1993, "Development of an Object-Oriented Anthropometric Database for an Ergonomic Man Model".151Inspec Abstract No. C94204-6110J-017, "Choices, Frameworks and Refinement", R. H. Campbell et al., 1991.152Inspec Abstract No. C9501-6115-039, from Elia et al., 1993, "G++: An Object Oriented Environment for Developing Distributed Applications".153Inspec Abstract No. C9501-6140D-005, S. Vinoski, 1994, "Mapping CORBA IDL Into C++".154Inspec Abstract No. C9501-7160-020, C. Le Pape, 1993, "The Cost of Genericity: Experiments With Constraint-Based Representations of Time-Tables".155Inspec Abstract No. C9501-7330-007, Salminen et al., 1994, "Modelling Trees Using an Object-Oriented Scheme".156Inspec Abstract No. C9502-6130G-006, "Support for Enterprise Modelling in CSCW", P. Hennessy et al., 1994.157Inspec Abstract No. C9502-7160-026, from Menga et al., 1995, "An Object-Oriented Framework for Enterprise Modelling".158Inspec Abstract No. C9502-7810C-058, from Lin et al., 1995, "Can CAL Software Be More Like Computer Games?".159Inspec Abstract No. C9503-6110B-045, from Rosiene et al., 1995, "A Data Modeling Framework for Queueing Network Models".160Inspec Abstract No. C9503-6140D-045, Satoh et al., 1995, "Process Algebra Semantics for a Real Time Object Oriented Programming Language".161Inspec Abstract No. C9504-6130B-049, from A. van Dam, 1995, "VR as a Forcing Function: Software Implications of a New Paradigm".162Inspec Abstract No. C9504-6140D-024, from Sheffler et al., 1995, "An Object-Oriented Approach to Nested Data Parallelism".163Inspec Abstract No. C9504-7460-042, Coleman et al., 1995, "An End-to-End Simulation of A Surveillance System Employing Architecture Independence, Variable Fidelity Components and Software Reuse".164Inspec Abstract No. C9504-7460-043, Sells et al., 1995, "Implementation of the Architecture for a Time-Domain Dynamical System Simulation in a Very High-Level Pictorial Object-Oriented".165Text of IBM Technical Disclosure Bulletin, Allard et al., Feb. 1990, "Object-Oriented Programming in C-the Linnaeus System", pp. 437-439.166Text of IBM Technical Disclosure Bulletin, Allard et al., Feb. 1990, "Object-Oriented Programming in C�the Linnaeus System", pp. 437-439.167Text of IBM Technical Disclosure Bulletin, Baker et al., Jun. 1991, "Distribution List Class", p. 159.168Text of IBM Technical Disclosure Bulletin, Baker et al., Oct. 1991, "Model View Schema", pp. 321-322.169Text of IBM Technical Disclosure Bulletin, Baker et al., Oct. 1991, "Office Container Class", pp. 309-310.170Text of IBM Technical Disclosure Bulletin, Cavendish et al., Jul. 1991, "Icon Pane Class", pp. 118-119.171Text of IBM Technical Disclosure Bulletin, Cavendish et al., Jun. 1991, "Object-Oriented Documentation Tool", pp. 50-51.172Text of IBM Technical Disclosure Bulletin, vol. 36, Coskun, N., Jun. 1993, "Persistent Framework Independent Record/Playback Framework", pp. 261-264.173Text of IBM Technical Disclosure Bulletin, vol. 37, DeBinder et al., Feb. 1994, "Results Folder Framework", pp. 431-432.174Text of IBM Technical Disclosure Bulletin, vol. 37, No. 11, Nov. 1994, pp. 71-72, Behrs et al., "Device Support Framework to Support ISO DPA 10175 and POSIX 1387.4".175Text of IBM Technical Disclosure Bulletin, vol. 37, No. 12, Dec. 1994, pp. 19-20, Al-Karmi et al., "Events Set for Event Tracing in Distributed Object-Oriented Systems".176Text of IBM Technical Disclosure Bulletin, vol. 37, No. 12, Dec. 1994, pp. 375-378, Acker et al., "Automatically Generating Formatted Documentation for Object-Oriented Class Libraries".177Text of IBM Technical Disclosure Bulletin, vol. 37, No. 6B, Jun. 1994, pp. 553-556, Gest et al., "Portable Object-Oriented Event Manager".178Text of IBM Technical Disclosure Bulletin, vol. 37, No. 7, Jul. 1994, pp. 145-146, Banda et al., "Exception Management Algorithm for Multi-Threaded Method Invocation".179Text of IBM Technical Disclosure Bulletin, vol. 38, No. 1, Jan. 1995, pp. 411-414, J. Knapman, "Generating Specific Server Programs in Distributed Object-Oriented Customer Information Control System".180V. K. Wadhwa et al., "Computer-Aided Software Engineering Facility," International Publication WO 91/08543 (Seer Technologies, Inc), Jun. 13, 1991.Referenced byCiting PatentFiling datePublication dateApplicantTitleUS6678885 *Mar 1, 2001Jan 13, 2004Wind River Systems, Inc.System and method for common code generationUS6684383 *Sep 14, 2000Jan 27, 2004Kabushiki Kaisha ToshibaMethod for constructing enterprise systemUS6711735 *Aug 15, 2000Mar 23, 2004AlcatelMethod of automatic production of specificationsUS6904593 *Mar 24, 2000Jun 7, 2005Hewlett-Packard Development Company, L.P.Method of administering software components using asynchronous messaging in a multi-platform, multi-programming language environmentUS6944845 *Mar 6, 2001Sep 13, 2005International Business Machines CorporationImplementation for an object oriented run-time extensible itemUS7069551Apr 5, 2005Jun 27, 2006Hewlett-Packard Development Company, L.P.Method of administering software components using asynchronous messaging in a multi-platform, multi-programming language environmentUS7089532 *Jan 4, 2002Aug 8, 2006International Business Machines CorporationObject oriented information retrieval framework mechanismUS7383531Jan 29, 2004Jun 3, 2008Microsoft CorporationExtensible productivity tool for exposing common classes in application buildingUS7401325Nov 5, 2003Jul 15, 2008International Business Machines CorporationMethod and apparatus for a configurable Java Server pages processing frameworkUS7546582 *Mar 30, 2005Jun 9, 2009International Business Machines CorporationManaging dynamic configuration data for producer components in a computer infrastructureUS7689576Mar 10, 2006Mar 30, 2010International Business Machines CorporationDilation of sub-flow operators in a data flowUS7689582Mar 10, 2006Mar 30, 2010International Business Machines CorporationData flow system and method for heterogeneous data integration environmentsUS7730458Apr 23, 2004Jun 1, 2010Microsoft CorporationBuilt-in diagnosticsUS7739267Mar 10, 2006Jun 15, 2010International Business Machines CorporationClassification and sequencing of mixed data flowsUS7793255 *Mar 1, 2005Sep 7, 2010Oracle America, Inc.System and method for maintaining alternate object viewsUS8099725Oct 11, 2006Jan 17, 2012International Business Machines CorporationMethod and apparatus for generating code for an extract, transform, and load (ETL) data flowUS8160999Dec 13, 2006Apr 17, 2012International Business Machines CorporationMethod and apparatus for using set based structured query language (SQL) to implement extract, transform, and load (ETL) splitter operationUS8201153 *Jun 18, 2008Jun 12, 2012International Business Machines CorporationConfigurable Java Server pages processingUS8219518Jan 9, 2007Jul 10, 2012International Business Machines CorporationMethod and apparatus for modelling data exchange in a data flow of an extract, transform, and load (ETL) processUS8266590Mar 4, 2009Sep 11, 2012International Business Machines CorporationManaging dynamic configuration data for a set of componentsUS8423978Jun 22, 2011Apr 16, 2013International Business Machines CorporationConfigurable java server pages processing frameworkUS8499276 *Dec 28, 2006Jul 30, 2013Ca, Inc.Multi-platform graphical user interfaceUS8832648May 9, 2012Sep 9, 2014International Business Machines CorporationManaging dynamic configuration data for a set of componentsUS20080163080 *Dec 28, 2006Jul 3, 2008Kooy Darrell JMulti-platform graphical user interfaceUS20090228862 *Mar 4, 2009Sep 10, 2009Anders BertelrudModularized integrated software development environments* Cited by examinerClassifications U.S. Classification717/108, 717/121, 707/999.103International ClassificationG06F9/44, G06F9/06Cooperative ClassificationY10S707/99944, G06F8/71European ClassificationG06F8/71Legal EventsDateCodeEventDescriptionJun 26, 2014SULPSurcharge for late paymentYear of fee payment: 11Jun 26, 2014FPAYFee paymentYear of fee payment: 12Mar 21, 2014REMIMaintenance fee reminder mailedJan 21, 2010FPAYFee paymentYear of fee payment: 8Nov 18, 2005FPAYFee paymentYear of fee payment: 4Apr 22, 1996ASAssignmentOwner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BRANSON, MICHAEL JOHN;MISHESKI, DAVID JOSEPH;STUPCA, STEPHEN MATTHEW;REEL/FRAME:007960/0688;SIGNING DATES FROM 19960418 TO 19960419RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google