The present invention relates to user-interactive object oriented programming systems, and particularly to such object oriented systems that function in a networking environment, such as the World Wide Web (Web) or equivalent proprietary or public network to perform functions defined in program objects.
The past decade has been marked by a technological revolution driven by the convergence of the data processing industry with the consumer electronics industry. The effect has, in turn, driven technologies that had been known and available but relatively quiescent over the years. Two of these technologies are the Internet, i.e. Web, related distribution and object oriented programming systems. Both of these technologies are embodied in the object oriented Java (“Java” is a trademark of Sun Microsystems, Inc.) programming system. The computer and communications industries have been extensively participating in the development and continual upgrading of the Java system. For details and background with respect to the Java system, reference may be made to a typical text, Just Java, 2nd Edition, Peter van der Linden, Sun Microsystems, 1997, or the text, Thinking in Java, Bruce Eckel, Prentice Hall, 1998.
The convergence of the electronic entertainment and consumer industries with data processing exponentially accelerated the demand for wide ranging communication distribution channels and the Web or Internet that had quietly existed for over a generation as a loose academic and government data distribution facility reached “critical mass” and commenced a period of phenomenal expansion that has not, as yet, abated.
Object oriented programming, which also had been virtually languishing for a generation, offered the ideal distribution vehicle for the Web. With its potentially interchangeable objects or units within which both data attributes and functions were stored in a predefined uniform framework, as well as the predefined object interfaces with each other, object oriented programming systems have found acceptance as the programming system for the Internet or Web. In all areas of data processing, communications, as well as the electronic entertainment and consumer industries, having anything to do with the Web, there has been a substantial movement to object oriented programming systems.
With the development and rapid expansion of the Web and other like networks, hypertext markup languages became the primary vehicle for distribution of data over such networks. A basic hypertext language, HTML, is described in detail in the above-entitled Just Java text, particularly at Chapter 7, pp. 249-268, dealing with the handling of Web pages; and also in the text, Mastering the Internet, G. H. Cady et al., published by Sybex Inc., Alameda, Calif., 1996, particularly at pp. 637-642, on HTML in the formation of Web pages. The Web pages are implemented so as to be used for the distribution of Web documents containing text and images.
In addition to the above evolving technologies: the Web distribution network; object oriented programming; and hypertext markup languages have recently been correlated into a system for distribution and exchange, via the Web, of data between any two remote computer applications. The system is specifically known as Web Services. The system is based on both suppliers of the data in the form of text based documents and the users of such data conforming to several industry standards developed by the World Wide Web Consortium (W3C). The primary standard is a HTML based language, Extensible Markup Language (XML), for defining data and creating markup languages in the form of XML tags.
Based upon the productive potential of the above-described distribution environment, the object oriented communication industries and its consumers are continually seeking communicatable program objects facilitating the distribution and performance of business, educational and governmental functions.
The present invention provides a program object for performing a novel time and work saving function. A new communicating object class is created: “The electronic excuse object”. This is an object class that provides for the automatic distribution via a communications network of a certification by an accepted authority of the existence of events justifying a responsive action or inaction by an entity, e.g. a person subjected to the effects of such events. The most common example would be the certification of an illness or hospital of incapacitation by an illness preventing work, school, government appearance, e.g. court, or travel commitment by an individual or like entity. Other possible situations would be a certification by an airline of a flight delay or cancellation preventing the appearance of an individual on the flight at a scheduled destination; or a certification of a court of law that an individual is being delayed from another scheduled appearance.
Thus, the present invention provides a computer controlled object oriented program communication system for the certification of the existence of events enabling responsive actions that comprise at least one object of an object class including the identity of the entity authorized to make said certification, the identity of the entity enabled to take said responsive actions and a certification by the authorizing entity of the existence of said events and a communication network process through which this object may be accessed so as to provide the certification to a designated recipient. The object contains an appropriate programming process for sending an electronic communication, such as an e-mail or Web document to the designated recipients. This communication process may be automatically carried out in response to the existence of the events enabling the certification. Provision may be made for limiting the time period of the certification.
The present invention will be better understood and its numerous objects and advantages will become more apparent to those skilled in the art by reference to the following drawings, in conjunction with the accompanying specification, in which:
Before going into the details of specific embodiments, it will be helpful to understand from a more general perspective the various elements and methods that may be used to implement the present invention. The present invention may be implemented using the Java Programming system, which is an object oriented system utilizing the Java programming language. The Java system and language are extensively familiar to those skilled in the art. The above-referenced texts, Thinking in Java and Just Java, comprehensively detail the system and language. Nonetheless, it should be helpful to generally review the known principles of object oriented programming.
It should be understood by those skilled in the art that object oriented programming techniques involve the definition, creation, use and instruction of “objects”. These objects are software entities comprising data elements or attributes and methods that manipulate the data elements. Objects may also include data related to events outside of the object to trigger or control methods within the object. The data and related methods are treated by the software as an entity and can be created, used and deleted as such. The data and functions enable objects to model their real world equivalent entity in terms of its attributes, which can be represented by the data elements, and its behavior, which can be represented by its methods.
Objects are defined by creating “classes” that are not objects themselves, but act as templates that instruct a compiler on how to construct the actual object. For example, a class may specify the number and type of data variables and the steps involved in the functions that manipulate the data. An object is actually created in the program by means of a special function called a constructor that uses the corresponding class definition and additional information, such as arguments provided during object creation, to construct the object. Objects are destroyed by a special function called a destructor.
Many benefits arise out of three basic properties of object oriented programming techniques, encapsulation, polymorphism and inheritance. Objects can be designed to hide or encapsulate all or a portion of the internal data structure and the internal functions. More particularly, during program design, a program developer can define objects in which all or some of the data variables and all or some of the related methods are considered “private” or for use only by the object itself. Other data or methods can be declared “public” or available for use by other software programs. Access to the private variables and methods by other programs can be controlled by defining public methods that access the object's private data. The public methods form an interface between the private data and external programs. An attempt to write program code that directly accesses the private variables causes a compiler to generate an error during program compilation. This error stops the compilation process and prevents the program from being run.
Polymorphism allows objects and functions that have the same overall format, but work with different data to function differently to produce consistent results. For example, an object may have a format of attribute data and methods to support a geometric shape. The same format can be used whether the shape is a rectangle or a circle. However, the actual program code that performs the shape formation may differ widely depending on the type of variables that comprise the shape. After the methods have been defined, a program can later refer to the shape formation method by its common format and, during compilation, the compiler will determine which of the shaping methods to use by examining the variable types. The compiler will then substitute the proper function code.
A third property of object oriented programming is inheritance that allows program developers to reuse pre-existing programs. Inheritance allows a software developer to define classes and the objects that are later created from them as related through a class hierarchy. Specifically, classes may be designated as subclasses of other base classes. A subclass “inherits” and has access to all of the public functions of its base class as though these functions appeared in the subclass. Alternatively, a subclass can override some or all of its inherited functions or may modify some or all of its inherited functions by defining a new function with the same form.
Referring to
In
A Read Only Memory (ROM) 16 is connected to CPU 10 via bus 12 and includes the Basic Input/Output System (BIOS) that controls the basic computer functions. RAM 14, I/O adapter 18 and communications adapter 34 are also interconnected to system bus 12. I/O adapter 18 may be a Small Computer System Interface (SCSI) adapter that communicates with the disk storage device 20. Communications adapter 34 interconnects bus 12 with an outside Internet or Web network as appropriate. I/O devices are also connected to system bus 12 via user interface adapter 22 and display adapter 36. Keyboard 24 and mouse 26 are all interconnected to bus 12 through user interface adapter 22. It is through such input devices that the user may interactively relate to the programs of this invention. Display adapter 36 includes a frame buffer 39 that is a storage device that holds a representation of each pixel on the display screen 38. Images may be stored in frame buffer 39 for display on monitor 38 through various components, such as a digital to analog converter (not shown) and the like. By using the aforementioned I/O devices, a user is capable of inputting information to the system through keyboard 24 or mouse 26 and receiving output information from the system via display 38.
A generalized example of the practice of the present invention involving an excuse or certification object will be considered with respect to
The Internet or Web is a global network of a heterogeneous mix of computer technologies and operating systems. Higher level objects are linked to lower level objects in the hierarchy through a variety of network server computers. These network servers are the key to network distribution, such as the distribution of Web pages and related documentation. In this connection, the term “documents” is used to describe data packets or data entities transmitted over the Web or other networks and is intended to include Web pages with displayable text, graphics and other images, as well as computer programs. Web documents are conventionally implemented in HTML language, which is described in detail in the above-referenced text, Just Java, particularly at Chapter 7, pp. 249-268, dealing with the handling of Web pages; and also in the text, Mastering the Internet, particularly at pp. 637-642, on HTML in the formation of Web pages. In addition, aspects of this description will refer to Web browsers. A general and comprehensive description of browsers may be found in the above-mentioned Mastering the Internet text at pp. 291-313. More detailed browser descriptions may be found in the text, Internet: The Complete Reference, Millennium Edition, M. L. Young et al., Osborne/McGraw-Hill, Berkeley Calif., 1999, Chapter 19, pp. 419-454, on the Netscape Navigator; Chapter 20, pp. 455-494, on the Microsoft Internet Explorer; and Chapter 21, pp. 495-512, covering Lynx, Opera and other browsers.
In light of this background, reference is made to
For example in a medical facility such as a doctor's clinic or hospital, the entry forms filled out by patients could solicit the choice and information needed for such e-mail certification. Then, upon the occurrence of the triggering events, the excuse object 44 could set up and transmit over the Web the appropriate certified message or documents 53 through Web servers 51 to either a school 54 or a plant or office 55.
While we have used the example of a medical facility, it should be clear that the object class used in this invention could be used in many other situations requiring appropriate certification by an authority. For example, a certification by a court of law confirming the need to hold or delay people, e.g. jury because of court duties; a certification by airlines that specific passengers have been delayed; notification by a bank that a financial transaction has been lost or misdirected through no fault of the client; or in military or national crisis situations, appropriate certifying notification, could be sent on a need to know basis. It should be noted that a great many of the above situations would involve confidentiality or secrecy. It should be understood that the object oriented programming system of this invention could be encrypted using any encryption appropriate to program objects. Such encryption schemes are well know in the art and it is beyond the scope and purpose of this invention to further describe such encryption programs.
The running of the process set up in
In one embodiment of the present invention, a designated recipient of the certifying document may be enabled to confirm the veracity of certain elements of the document. For instance, in the example of the medical facility, the recipient may want to confirm that the medical facility identification is authentic and not that of an imposter. The medical facility identification included in the certifying document may contain information that can be trusted and be relied upon by including certain credentials authentic only to that medical facility. For example, these credentials may be encrypted with the private key of the medical facility and may be authenticated by the recipient using the corresponding public key available from the medical facility. The credentials that authenticate the medial facility identification may further include or point to other information, such as the agency from which the medical facility received its accreditation.
Although certain preferred embodiments have been shown and described, it will be understood that many changes and modifications may be made therein without departing from the scope and intent of the appended claims.