Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
1998-11-19
2001-10-02
Homere, Jean R. (Department: 2177)
Data processing: database and file management or data structures
Database design
Data structure types
C707S793000, C707S793000
Reexamination Certificate
active
06298353
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates in general to a method and system for improved data processing systems, and more specifically to an improved data processing system which utilizes Java Beans or Java software applications. Still more particularly, the present invention relates to an improved data processing system utilizing Java Beans or Java software applications wherein a determination is made as to the serialization compatibility between versions of Java classes.
2. Description of the Related Art
A generalized structure for a conventional data processing system
10
as shown in
FIG. 1
includes one or more processing units
12
connected to a permanent storage device (hard disk)
16
, system memory device (random access memory or RAM)
18
, firmware
24
, and to various peripheral or input/output (I/O) devices
14
. The I/O devices typically include a display monitor, a keyboard, and a graphical pointer (mouse). System memory device
18
is utilized by a processing unit
12
in carrying out program instructions, and stores those instructions as well as data values that are fed to or generated by the programs. Processing unit
12
communicates with the other components by various means, including one or more interconnects (buses)
20
, or direct access channels
22
. A data processing system may have many additional components such as serial and parallel ports for connection to, e.g., printers, and network adapters. Other components might further be utilized in conjunction with the foregoing; for example, a display adapter might be utilized to control a video display monitor, and a memory controller can be utilized to access the system memory, etc.
A data processing system program is accordingly a set of program instructions which are adapted to perform certain functions by acting upon, or in response to, the I/O devices. Program instructions that are carried out by the processor are, at that lowest level binary in form, i.e., a series of ones and zeros. These executable (machine-readable) program instructions are produced from higher-level instructions written in a programming language. The programming language may still be low-level such as assembly language (which is difficult to utilize since instructions appear as hexadecimal bytes), or may be a higher level language in which instructions are created utilizing more easily understood words and symbols. One example of a high level programming language is “C” (or its improved version “C++”). After a computer program is written in C++, it is converted into machine code utilizing a compiler (which reduces the high-level code into assembly language) and a linker (which transforms the assembly language into machine code).
In an attempt to simplify programming, and yet still provide powerful development tools, programmers have created “object-oriented” programming languages in which each variable, function, etc., can be considered an object of a particular class. C++ is an example of an object-oriented programming language, and provides advanced programming features such as polymorphism, encapsulation, and inheritance.
“Java”™ is another object-oriented programming language and was developed by Sun Microsystems, Inc. Java is similar to the C++ programming language, but Java is smaller, more portable, and easier to utilize than C++ because it manages memory on its own. Java programs are compiled into bytecodes, which are similar to machine code but are not specific to any platform. Currently, the most widespread use of Java is in programming small applications (applets) for the World Wide Web of the Internet. These applets do not run as separate programs, but rather are loaded within another application that has Java support, such as a web browser. The term “applet” is particularly utilized to refer to such programs as they are embedded in-line as objects in hypertext markup language (HTML) documents.
The portability, security, and intrinsic distributed programming support features of the Java programming language make this language useful for Internet programming. Java is a totally object-oriented, platform independent programming language, which achieves architectural independence by compiling source code into its own intermediate representation. Java source code is not compiled into normal machine code, but is translated into code for a virtual machine specifically designed to support Java's features. A Java interpreter or a Java-enabled browser then executes the translated code.
Component software architectures employ discrete software components to quickly prototype and flesh out interactive applications. Applications are built by combined a set of independent components with developer-written code which acts as a “glue” between components, usually responding directly to component events by setting component properties or invoking component methods. One currently popular component software architecture is the Java Bean specification of the Java programming language.
Java Beans provide a component model for building and utilizing Java-based software components. The Java Beans application programming interface (API) makes it possible to write component software in the Java programming language. Components are self contained, reusable software units that can be visually composed into composite components, applets, applications, and servlets utilizing visual application builder tools. A “Bean” is simply a Java class with extra descriptive information, similar to the concept of an object linking and embedding (OLE)-type library. Unlike an OLE library, however, a Bean is usually self-describing, including a file which contains the class, symbol information and method signatures and which may be scanned by a development tool to gather information about the bean, a process referred to as introspection. Any Java class with public methods may be considered a bean, but a bean typically has properties and events as well as methods.
Such components can be visually composed into units utilizing visual application builder tools which are utilized only to develop other programs. Components expose their features(for example public methods and events) to builder tools for visual manipulation. A Bean's features are exposed because feature names adhere to specific design patterns. A “JavaBeans-enabled” builder tool can then examine the Bean's patterns, discern its features, and expose those features for visual manipulation.
A Java Bean component is generally made up of a non trivial number of related classes and data files. This complicates tool interface and internal workings. The capability to store and retrieve Java objects is essential to building all but the most transient applications. The key to storing and retrieving objects is representing the state of objects in a serialized form sufficient to reconstruct the object. The class is broken down into a stream of data. When the stream is read back by the same version of the class, there is no loss of information or functionality. The stream is the only source of information about the original class.
Objects to be saved in a stream may support either a serializable interface or the externalizable interface. Within a stream the first reference to any object results in the object being serialized or externalized and the assignment of a handle for that object. Subsequent references to that object are encoded as the handle. Utilizing object handles preserves sharing and circular references that occur naturally in object graphs. Subsequent references to an object utilize only the handle allowing a very compact representation.
The class of a Java object is defined as the behavior of a particular object in an object-oriented programming and a user defined type which specifies the representation of objects of the class and the operation that can be applied to said objects. A Java object's serialized form must be able to identify and verify the Java class from which the object content
Bracewell & Patterson L.L.P.
Homere Jean R.
International Business Machines - Corporation
Mims Jr. David A.
Robinson Greta
LandOfFree
Checking serialization compatibility between versions of... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Checking serialization compatibility between versions of..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Checking serialization compatibility between versions of... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2604474