Data processing: structural design – modeling – simulation – and em – Emulation – Of peripheral device
Reexamination Certificate
1997-09-29
2002-04-02
Teska, Kevin J. (Department: 2123)
Data processing: structural design, modeling, simulation, and em
Emulation
Of peripheral device
C703S026000, C707S793000, C717S152000, C713S001000
Reexamination Certificate
active
06366876
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to computer systems, and specifically to compatibility issues between platforms and the applications intended to run on them.
2. Background Art
Computer software developers are creating software applications and programs for non-traditional environments. Instead of only creating programs for desktop computers or laptop computers, developers are also creating programs for other systems that may have “embedded processors” to add or enhance functionality. Such devices include cellular phones, personal digital assistants, smart cards, pagers, and other devices. An environment in which a software application will be used is referred to here as a “platform”.
In developing software applications for new and emerging platforms, it is important to be able to test and analyze the software for compliance with these platforms. This allows the developer to determine if the software is compatible with the platform. Debugging software can be used to provide some analytical capability at run time, but does not provide flexibility for new or changing platforms. Linkers and other build tools link code. That is, build tools create executable code from object code and warn, at build time, when references are unresolved. A build tool is limited in scope to the object code that it is linking. It does not verify or assess the code's compliance with a platform.
With the popularity of network systems, such as the World Wide Web, there is a need to provide more compatibility of computer and non-computer platforms to the Web. The Java™ language developed by Sun JavaSoft™ has provided a way to write platform independent applications to run on the Web and provide the desired compatibility. Some platforms may have unique and/or proprietary interfaces, limited memory and display sizes, constrained power consumption, user response time, and limited physical space. These platform are referred to here as restrictive environments. A version of Java™ called PersonalJava™ has been developed by JavaSoft to be used with, among other things, restrictive environments. A description of Java and PersonalJava can be found at web site “http:/ /www.java.sun.com”.
When writing applications for devices, whether using Java, PersonalJava, or any other language, it is important to be able to analyze the applications for compatibility with the intended device. Debugging programs have been used in the past to provide some analysis capabilities. However, with the number of different environments of portable devices, the number of debugging programs required becomes unweildy. It would be desirable to have a general solution to the problem of analyzing the compatibility of applications with the device environment for which they are written.
SUMMARY OF THE INVENTION
Embodiments of the invention can be used to assess whether a software application is compatible with an operating platform. A specification that describes the operating platform is described by a definitional language. The specification identifies the programming resources of an operating platform The application's dependencies and programming resources are identified. A programming resource is data and functionality that is accessible to an application (e.g., in a Java application environment, a programming resource includes methods, classes and packages). A compatibility engine is executed to resolve an application's dependencies are resolved to the specification. The output of the compatibility engine identifies whether the application conforms to the operating platform and how it deviates from the specification.
A grammar is used to specify programming resources of the operating platform that may be used to resolve an application's references. At least one specification is created that defines the programming resources of the operating platform. Where more than one specification is defined, the specifications are merged to create a combined definition of the operating platform. The application's program files are parsed to identify references that must be resolved before the application can execute, The application's programming resources are identified as well.
An attempt is made to resolve references within the application. However, the application may contain external references that cannot be resolved within the application. If neither the application nor the operating platform contains a programming resource that can resolve a reference, the reference is unresolvable.
If a reference cannot be resolved within the application, the merged specification is examined to determine whether the operating platform contains a programming resource that can be used to resolve the reference. If the programming resource is found, a compliance status associated with the programming resource is examined to determine whether it is available for use by the application. If the programming resource has a compliance status of “required,” the operating platform is required to include the programming resource and the application's reference is reported as resolved. An “optional” compliance status indicates that the entry may or may not be included in the operating platform. If the optional status is not overridden by a subsequently-processed specification, the reference is reported in error (e.g., the reference is to an unimplemented optional programming resource). A “modified” compliance status indicates that the programming resource associated with the entry has been changed. An “unsupported” compliance status indicates that the application's reference is not supported by the operating platform. A status of “optional,” “modified” or “unsupported” resolves the reference, but indicates a potential problem with that reference.
Either a warning or an error message is generated for those references that are not resolved to the application programming resource or a “required” specification programming resource. A “non-conformance” warning is generated for those references that resolve to a “modified” specification programming resource, or for a reference that does not resolve to a programming resource (i.e., an “unresolved” status). A reference that resolves to an “unsupported” or “optional” specification programming resource causes a “non-conformance” error.
In one embodiment of the invention, the operating platform includes a Java™ application environment. The programming resources that can be used to resolve a reference include a package, class or method. The class files that comprise the application are parsed to identify its references (e.g., fields, return types and method arguments). An application dependency tree is created that identifies the application's references.
An attempt is made to resolve references in each of the application's class files. After all of the references have been processed, an assessment as to the application's conformity to an operating platform and an identification as to how the application deviates is provided. This feedback can be used to determine changes that can be made to the application, the operating platform or both that would result in conformity between the application and its operating platform.
REFERENCES:
patent: 5404529 (1995-04-01), Chernikoff et al.
patent: 5418953 (1995-05-01), Hunt et al.
patent: 5491694 (1996-02-01), Oliver et al.
patent: 5548759 (1996-08-01), Lipe
patent: 5583983 (1996-12-01), Schmitter
patent: 5678039 (1997-10-01), Hinks et al.
patent: 5757925 (1998-05-01), Faybishenko
patent: 5787246 (1998-07-01), Lichtman et al.
patent: 5793979 (1998-08-01), Lichtman et al.
patent: 5809329 (1998-09-01), Lichtman et al.
patent: 5815415 (1998-09-01), Bentley et al.
patent: 5819107 (1998-10-01), Lichtman et al.
patent: 5835777 (1998-11-01), Staelin
patent: 5905860 (1999-05-01), Olsen et al.
patent: 5909545 (1999-06-01), Frese, II et al.
patent: 5954826 (1999-09-01), Herman et al.
patent: 5999730 (1999-12-01), Lewis et al.
patent: 6038677 (2000-03-01), Lawlor et al.
patent: 6047312 (2000-04-01), Brooks
Phan Thai
Sun Microsystems Inc.
Teska Kevin J.
The Hecker Law Group
LandOfFree
Method and apparatus for assessing compatibility between... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for assessing compatibility between..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for assessing compatibility between... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2906056