Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing
Reexamination Certificate
2000-06-05
2004-01-06
Follansbee, John (Department: 2126)
Electrical computers and digital processing systems: multicomput
Computer-to-computer data routing
Least weight routing
C709S241000, C709S241000
Reexamination Certificate
active
06675227
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to distributed object-oriented computing systems and, more specifically, to such a system that includes an Enterprise Java Beans™ environment.
2. Description of the Related Art
Object-oriented (OO) computing is perhaps the greatest change that has occurred in the computing paradigm in recent years. The following is a brief synopsis of OO concepts that those readers who are familiar with OO computing may wish to skip. The goal of OO computing is to reduce the time and costs associated with complex software by creating small, reusable sections of program code that can be quickly and easily combined and re-used to create new programs. The code sections are known as objects. OO languages, such as C++ and Java™ have been developed that allow programmers to approach their programming tasks in a way that is believed to be more natural and intuitive than that in which programmers traditionally approached tasks armed only with the tools of procedural (non-OO) programming languages. Using the unique tools or features of an OO language, a programmer can write code to define a software object that models something in the real world. The object can model the attributes or characteristics of the real-world object and, in many cases, also model its behavior.
Objects are instances of classes that define structure and behavior. Objects can be instantiated or created from a class, and then used, stored, and otherwise manipulated in a manner that analogizes them to actual things. The behavior of an object is defined by methods, which are functions or procedures defined in a class and typically can access the internal state of an object of that class to perform some operation. Objects can invoke the methods of other objects.
The unique features of OO computing include, among others, encapsulation and inheritance. Encapsulation is the process of compartmentalizing the elements of an object, such as its contractual interface (with other objects and the outside world) and its implementation. For example, for objects to interact, they need only address each others' interfaces and do not need to be involved with its internal structure or implementation, which can be hidden or made inaccessible to other objects. Inheritance refers to the ability to define a new class by extending an existing one. Inheritance is a relationship between classes where one class is the parent or superclass class of another. A class can inherit from more than one class; this is known as multiple inheritance.
Java™ is an example of an OO programming language. Although Java™ is not more fully described in this patent specification because it is well-understood by persons skilled in the art to which the invention pertains, the distinction between an interface and an implementation class is one Java™ feature that is important to the understanding of the invention. An interface describes a service or method without providing any implementation of it. The actual implementation or functionality of the method is separately provided by an implementation class. Although a Java™ interface is not a class, like a class an interface has OO properties such as the ability to inherit from another interface. The advantage of separating interface from implementation is that client code can be written using only the interface definition; a client need not know the implementation class. Indeed, the implementation class can be be determined at runtime of the code. This scheme is also known as late binding. It is important to note that the same client code can be run in a given case with a given implementation class and, without change, in another case with another implementation class.
Distributed OO computing refers to a networked system in which a client (computer) can access an object that exists anywhere on the network. CORBA® or Common Object Request Broker Architecture is an example of a specification promulgated by the Object Management Group (OMG) that facilitates distributed OO computing. A client need not know on which server (computer) the object is stored on the network. It need not know the operating system of that server. It need not know how the object is implemented; the object's code may be written in essentially any programming language. The client need only know the server interface. A concept that has arisen in the context of distributed OO computing is that of a framework. A framework is a collection of classes that provides an infrastructure within which software developers can work.
Although the foregoing is intended to provide some background information for purposes of this patent specification, OO programming and distributed OO systems are not described in further detail herein because they are well-known to persons skilled in the art to which the below-described invention pertains.
Enterprise Java Beans™ (EJB) is a specification promulgated by Sun Microsystems of Palo Alto, Calif. that describes a server-side services framework in which software developers can create business application programs or, more generally, business objects or components. It is important to note that EJB provides a complete, predefined framework, in contrast to (plain or non-“Enterprise”) Java Beans™, which does not. The class that a software developer writes to implement the component functionality is commonly referred to as an Enterprise Java Bean™ (EJB). Two types of EJBs are defined by the specification: session beans, which are stateless, and entity beans, which can provide access to persistent, i.e., stored, data. The emphasis of this framework is on portability. An EJB can be deployed in any computing system that has an EJB environment, without regard to the type of computing platforms in the system. EJB describes a set of application program interfaces (APIs) for accessing services such as naming, persistence and transactions. By conforming their code to these APIs, business software developers can concentrate upon writing code that implements their business functions and not be concerned with services issues. Providing support for complex services is the task of EJB server vendors. Once one has obtained an EJB server, EJB components (i.e., EJBs) can be obtained from any business software vendor and can be expected to run on the EJB server. An important advantage of conforming applications to the EJB specification is that they can use CORBA® services that are provided by the EJB server.
Component providers must be mindful of whether their customers' computing systems have an EJB environment or not, potentially requiring the provider to sell two different versions or flavors of the same component. A component that is deployed in an EJB environment (i.e., an EJB) generally has an interface that inherits from an interface known as EJBObject. This means that any client that uses such a component must have access to EJB packages. In some computing systems, not all clients have access to EJB packages. Thus, a component provider could potentially provide an EJB-enabled version of a component accessible to those clients that have such access, and provide a non-EJB version (e.g., implemented in plain or non-“Enterprise” Java Beans™) accessible to those that do not have such access.
It would be desirable to provide a method for providing a service that clients can use independently of whether it is implemented in an EJB or something else, e.g., a plain or non-“Enterprise” Java Bean™. The present invention addresses these problems and deficiencies and others in the manner described below.
SUMMARY OF THE INVENTION
The present invention relates to a method and object-oriented computing system in which a Java™ implementation of a service is provided dynamically at runtime via a Java™ interface for the service in accordance with the needs of a client computer in one of two varieties: an Enterprise Java Beans™ (EJB) implementation or, alternatively, a non-EJB implementation. Thus, the same service is accessible, without requiring any
Gavrilo Galina
Tost Andre
Vilnis Dzintars
Cao Diem
Follansbee John
Gamon Owen J.
Maxwell Lawrence D.
LandOfFree
Method for providing a service implementation for both EJB... 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 for providing a service implementation for both EJB..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method for providing a service implementation for both EJB... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3189008