`
`County of New York
`State of New York
`
`Date: (cid:38)(cid:286)(cid:271)(cid:396)(cid:437)(cid:258)(cid:396)(cid:455) 23, 201(cid:1009)
`
`
`
`To whom it may concern:
`
`This is to certify that the attached translation from Japanese into English is an accurate
`representation of the documents received by this office.
`
`The documents are designated as:
`JPH10247183A
`(cid:120)
`
`
`Belinda Lai attests to the following:
`
`“To the best of my knowledge, the aforementioned documents are a true, full and accurate
`translation of the specified documents.”
`
`
`
`Signature of Belinda Lai
`
`
`
`Apple Inc. Exhibit 1005
`
`
`
`(19) Japan Patent Office (JP)
`
`
`(12) Unexamined Patent Application (A)
`
`
`(11) Patent Publication No.
`H10-247183
`(43) Publication Date: September 14, 1998
`
`(51) Int. Cl. 6
`FI
`
`ID No.
`370N
`G06F 15/16
`370
`G06F
`15/16
`360B
`9/46
`360
`
`9/46
`354Z
`13/00
`354
`// G06F
`13/00
`Examination requested: Not yet Number of Claims: 27 OL (Total pages: 43)
`(21) Application No.
`H09-346401
`(71) Applicant 390009531
`International Business
`Machines Corporation
`(No street number) Armonk,
`New York, 10504 US
`(72) Inventor Marcia Lynn Brandt
`1902 43rd St. NW, Rochester,
`Minnesota 55901 US
`SAKAGUCHI, Hiroshi, Patent
`Attorney (1 other)
`
`
`
`
`
`
`
`
`
`(22) Application Date December 16,
`1997
`
`(31) Priority Claim No. 08/780015
`
`(74) Agent
`
`
`
`
`
`Continued on Last Page
`
`December 23,
`1996
`US
`
`(32) Priority Date
`
`(33) Priority Claim
`Country
`
`
`
`(54) [Title of the Invention] Computer System and Method
`
`(57) ABSTRACT
`PROBLEM
`An object of the present invention is to provide
`the capability to easily access many different
`application programs over the WWW via a
`common user interface.
`RESOLUTION MEANS
`By providing standard procedures, routines,
`tools, and software “hooks” for accessing
`software applications over the WWW, software
`developers can concentrate on the functionality
`of the application program and easily use
`HTML to provide a GUI interface for the
`application program.
`
`
`
`
`Apple Inc. Exhibit 1005
`
`
`
`What is claimed is:
`1.
`A computer system that provides a common user interface for communicating between
`a plurality of web browsers and a software application over the World-Wide Web, the computer system
`comprising:
`at least one Central Processing Unit (CPU);
`a memory coupled to the CPU; and
`a transaction support mechanism, the transaction support mechanism residing in the memory
`and being executed by the at least one CPU, wherein the transaction support mechanism is capable of
`receiving and transmitting data to and from the plurality of web browsers via the common user
`interface, the transaction support mechanism using an identifier mechanism to identify and track the
`data.
`
`The computer system of claim 1, further comprising a security mechanism, the security
`2.
`mechanism residing in the memory and being executed by the at least one CPU, the security mechanism
`coupled to and providing an interface between the software application and the plurality of web
`browsers, the security mechanism receiving user input from the plurality of web browsers, the security
`mechanism retrieving authentication parameters for the software application corresponding to the
`received input.
`The computer system of claim 1, further comprising an interface mechanism, the
`3.
`interface mechanism comprising a gateway mechanism for handling at least one variable, the gateway
`mechanism residing in the memory and being executed by the at least one CPU, the gateway
`mechanism comprising a universal common gateway interface for communicating between the plurality
`of web browsers and the software application without requiring reprogramming for the software
`application.
`The computer system of claim 1, further comprising a disconnect mechanism, the
`4.
`disconnect mechanism residing in the memory and being executed by the at least one CPU, the
`disconnect mechanism storing state data and a conversation identifier relating to each conversation
`between one of the plurality of web browsers and a software application process when the software
`application process is suspended such that the data can be retrieved when the software application
`process is resumed.
`5.
`The computer system of claim 1, further comprising:
`a security mechanism, the security mechanism residing in the memory and being executed by
`the at least one CPU, the security mechanism coupled to and providing an interface between the
`software application and the plurality of web browsers, the security mechanism receiving user input
`from the plurality of web browsers, the security mechanism retrieving authentication parameters for the
`software application corresponding to the received input;
`an interface mechanism, the interface mechanism comprising a gateway mechanism for
`handling at least one variable, the gateway mechanism residing in the memory and being executed by
`
`Apple Inc. Exhibit 1005
`
`
`
`the at least one CPU, the gateway mechanism comprising a universal common gateway interface for
`communicating between the plurality of web browsers and the software application without requiring
`reprogramming for the software application; and
`a disconnect mechanism, the disconnect mechanism residing in the memory and being executed
`by the at least one CPU, the disconnect mechanism storing state data and a conversation identifier
`relating to each conversation between one of the plurality of web browsers and a software application
`process when the software application process is suspended such that the data can be retrieved when the
`software application process is resumed.
`6.
`The computer system of claim 1, wherein the transaction support mechanism further
`comprises a mechanism for communicating with a native interface to the software application.
`7.
`The computer system of claim 1 wherein the transaction support mechanism
`comprises:
`an application gateway in communication with the web server application and the software
`application, the application gateway residing in the memory and being executed by at least one of the
`plurality of CPUs, the application gateway including the identifier mechanism, the identifier
`mechanism generating an identifier for each of the plurality of web browsers and routing data from the
`software application to the selected one of the plurality of web browsers that correspond to the
`identifier.
`The computer system of claim 7 wherein the application gateway processes data
`8.
`received from the plurality of web servers and processes data received from the application program.
`9.
`The computer system of claim 1 wherein the software application is a process
`engineering software application.
`10.
`The computer system of claim 1 further comprising at least one activity program
`interface (API) in communication with at least one activity program that executes under the direction of
`the software application, the at least one activity program interface communicating between the at least
`one activity program and the application gateway.
`11.
`A computer system that provides a common user interface for communicating between
`a web browser and a software application over the World-Wide Web, the computer system comprising:
`a plurality of Central Processing Units (CPUs);
`a memory coupled to the plurality of CPUs;
`a plurality of web browsers, each of the plurality of web browsers residing in the memory and
`being executed by at least one of the plurality of CPUs;
`a web server application in communication with at least one of the plurality of web browsers,
`the web server application residing in the memory and being executed by at least one of the plurality of
`CPUs;
`
`a software application residing in the memory and being executed by at least one of the plurality
`of CPUs;
`
`Apple Inc. Exhibit 1005
`
`
`
`and an application gateway in communication with the web server application and a native
`interface to the software application, the application gateway residing in the memory and being
`executed by at least one of the plurality of CPUs, the application gateway including: an identifier
`mechanism, the identifier mechanism generating an identifier for each of the plurality of web browsers
`and routing data from the software application to the selected one of the plurality of web browsers that
`correspond to the identifier.
`12.
`The computer system of claim 11 wherein the application gateway processes data
`received from the web server application and the application program.
`13.
`The computer system of claim 11 wherein the software application is a process
`engineering software application.
`14.
`The computer system of claim 11 further comprising at least one activity program
`interface (API) in communication with at least one activity program that executes under the direction of
`the software application, the at least one activity program interface communicating between the at least
`one activity program and the application gateway.
`15.
`The computer system of claim 11 wherein the web server application comprises:
`an authenticator, the authenticator determining from authentication data passed from one of the
`plurality of web browsers whether the selected web browser is authorized to access the web server
`application; and wherein the web server processes data received from the plurality of web browsers and
`data received from the application gateway.
`16.
`The computer system of claim 11 wherein the web browser is executed on a client
`workstation by at least one of the plurality of CPUs.
`17.
`The computer system of claim 11 wherein the web server application is executed on a
`web server computer by at least one of the plurality of CPUs.
`18.
`The computer system of claim 11 wherein the application gateway is executed on the
`web server computer by at least one of the plurality of CPUs.
`19.
`The computer system of claim 11 wherein the application gateway is executed on a first
`computer by at least one of the plurality of CPUs.
`20.
`The computer system of claim 11 wherein the software application is executed on a
`second computer by at least one of the plurality of CPUs.
`21.
`The computer system of claim 11 wherein the application gateway is executed on the
`second computer by at least one of the plurality of CPUs.
`22.
`A computer-implemented method for providing a common user interface for
`communicating between a web browser and a software application over the World-Wide Web, the
`method comprising the steps of:
`providing a plurality of Central Processing Units (CPUs );
`providing a memory coupled to the plurality of CPUs;
`executing at least one of the plurality of web browsers residing in the memory by at least one of
`
`Apple Inc. Exhibit 1005
`
`
`
`the plurality of CPUs;
`providing a web server application residing in the memory and being executed by at least one of
`the plurality of CPUs;
`providing a software application residing in the memory and being executed by at least one of
`the plurality of CPUs;
`providing an application gateway residing in the memory and being executed by at least one of
`the plurality of CPUs;
`a selected one of the plurality of web browsers initiating an access to the software application
`by sending authentication data and environment data to the web server application;
`processing the environment data if the authentication data authorizes the selected web browser
`to access the web server application;
`outputting the processed environment data to the application gateway;
`generating an identifier corresponding to the selected web browser and a desired process to be
`executed by the software application;
`providing a security mechanism, the security mechanism residing in the memory and being
`executed by the at
`least one CPU, the security mechanism receiving user input from the web browser, the security
`mechanism retrieving authentication parameters for the software application corresponding to the
`received input providing an interface mechanism residing in the memory and being executed by the at
`least one CPU, wherein the interface mechanism receives and transmits variables and templates
`between the web browser and the software application; and
`providing a disconnect mechanism residing in the memory and being executed by the at least
`one CPU, the disconnect mechanism storing state and a conversation identifier relating to a
`conversation between the web browser and the software application when the conversation is
`suspended such that the state data can be retrieved when the conversation is resumed executing the
`desired process by the software application; returning the results of executing the desired process to the
`application gateway with the identifier; determining which of the plurality of browsers should be sent
`the results based on the identifier; sending the results from the application gateway to the web server
`application; and
`sending the results from the web server to the selected one web browser corresponding to the
`identifier.
`The method of claim 22 wherein the software application is a process engineering
`23.
`software application.
`24.
`A system for providing a common user interface for communicating between a web
`browser and a software application over the World-Wide Web, the system comprising:
`a client workstation running the web browser; a web server computer running a web server
`application; a first computer running an application gateway; a second computer running the software
`
`Apple Inc. Exhibit 1005
`
`
`
`application;
`a communication mechanism between the web browser and the web server application which
`allows data to be transmitted between the web browser and the web server application;
`a communication mechanism between the web server application and the application gateway
`which allows data to be transmitted between the web server application and the application gateway;
`a communication mechanism between the application gateway and the software application
`which allows data to be transmitted between the application gateway and the software application;
`an interface mechanism wherein the interface mechanism receives and transmits variables and
`templates between the web browser and the software application;
`a security mechanism coupled to and providing an interface between the web browser and the
`software application;
`a disconnect mechanism wherein the disconnect mechanism stores state and a conversation
`identifier relating to a conversation between the web browser and the software application when the
`conversation is suspended such that the state data can be retrieved when the conversation is resumed
`executing the desired process by the software application; and
`a plurality of application programming interfaces that allow the web browser to communicate
`with the software application over the World-Wide Web.
`25.
`The system of claim 24 wherein the software application is a process engineering
`software application.
`26.
`The system of claim 24 wherein the web server computer comprises the first computer.
`27.
`The system of claim 24 wherein the first computer comprises the second computer.
`
`
`
`
`
`Apple Inc. Exhibit 1005
`
`
`
`DETAILED DESCRIPTION OF THE INVENTION
`[0001]
`TECHNICAL FIELD OF THE INVENTION
`This invention generally relates to interactions on the world-wide web, and more specifically
`relates to an apparatus and method for providing access to software applications via the world-wide
`web.
`[0002]
`BACKGROUND TECHNOLOGY
`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,
`and computer systems may be found in many different settings. Computer systems typically include a
`combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer
`programs). As advances in semiconductor processing and computer architecture push the performance
`of the computer hardware higher, more sophisticated computer software has evolved to take advantage
`of the higher performance of the hardware, resulting in computer systems today that are much more
`powerful than those that existed just a few years ago.
`[0003]
`Computer systems typically include operating system software that control the basic function of the
`computer, and one or more software applications that run under the control of the operating system to
`perform desired tasks. For example, a typical IBM Personal Computer may run the OS/2 operating
`system, and under the control of the OS/2 operating system, a user may execute an application program,
`such as a word processor. As the capabilities of computer systems have increased, the software
`applications designed for high performance computer systems have become extremely powerful.
`[0004]
`Other changes in technology have also profoundly affected how we use computers. For example,
`the widespread proliferation of computers prompted the development of computer networks that allow
`computers to communicate with each other. With the introduction of the personal computer (PC),
`computing became accessible to large numbers of people. Networks for personal computers were
`developed to allow individual users to communicate with each other. In this manner, a large number of
`people within a company could communicate simultaneously over a network with a software
`application running on a single computer system.
`[0005]
`One significant computer network that has recently become very popular is the Internet. The
`Internet grew out of the modern proliferation of computers and networks, and has evolved into a
`sophisticated worldwide network of computer systems linked together by web pages that collectively
`make up the “world-wide web”, or WWW. A user at an individual PC (i.e., workstation) that wishes to
`access the WWW typically does so using a software application known as a web browser. A web
`
`Apple Inc. Exhibit 1005
`
`
`
`browser makes a connection via the WWW to other computers known as web servers, and receives
`information from the web servers that is displayed on the user’s workstation. Information displayed to
`the user is typically organized into pages that are constructed using a specialized language called
`Hypertext Markup Language (HTML). Web browsers that use HTML are now available for almost
`every computer system on the market, making the WWW accessible to practically anyone who has
`access to a computer and a modem. Although the WWW is becoming increasingly popular, the rapid
`growth and expansion of computer users accessing the WWW has brought along with it concomitant
`problems. Some of these problems are identified below.
`[0006]
`With the growing popularity of the Internet and the WWW, businesses have recognized that the
`Internet provides a new way to boost both sales and efficiency. If a user with a web browser can interact
`directly with a company’s software application, a given transaction will be simplified. For example,
`let’s evaluate how a person typically reserves a rental car. The person calls the rental car agency, and
`then gives his or her information (i.e., name, address, credit card number, etc.) to the rental car agent
`over the phone. The agent must enter the information into the car rental software application to initialize
`the process to reserve a car. A more efficient car reservation system for web users would allow the user
`to interact directly with the car rental software application. This would eliminate many of the tasks that
`the car rental agent now performs. However, devising a car rental software application that is capable of
`interacting directly with web users would require creating custom interface software. Likewise, a
`custom user interface must be created for each different software application that is to be accessed via
`the WWW. The preferred interface would be a graphical user interface (GUI). The process of
`generating a custom GUI for a software application is time consuming and expensive, and typically
`results in a proprietary user interface that cannot be used for communicating with other software
`applications. This means that a company has a significant disincentive that would prevent them from
`providing access to their software applications via the WWW.
`[0007]
`In addition, many computer users have adopted very different forms of hardware/software
`computer platforms. For example, while the IBM-compatible personal computer is the most common
`type of computer system available today, other vendors have developed very different product lines
`with significant numbers of computer systems presently installed and in use. These disparate hardware
`systems typically utilize completely different operating systems. The existence of these various
`different hardware and software systems will typically require a completely new programming and
`development effort to “port” or translate the custom GUI for a given software application to each
`different hardware platform. Many companies will only support the most popular hardware/software
`combinations, thereby limiting market share and reducing the number of users who have access to the
`software application.
`[0008]
`
`Apple Inc. Exhibit 1005
`
`
`
`The problem of multiple unrelated user interfaces highlights yet another problem that may also
`prevent the rapid adoption of software applications via the WWW. Assuming a company has absorbed
`the cost of developing a custom GUI for a given software application, the GUI developed by one
`company will most likely differ significantly from the GUI developed by another company for their
`respective software applications. Typically, each software vendor will create a custom GUI for each
`specific software application so that whenever a user accesses the software application via the WWW,
`the user can access the specific features of the software application. However, since every product has
`different features and every vendor has differing standards for application/user interaction, the result is
`often a vastly different user interface for each and every software application that the user encounters.
`The user is often forced to “re-learn” basic skills for interacting with each and every software
`application they wish to access.
`[0009]
`The current situation for accessing software over the WWW is somewhat analogous to the early
`days of the personal computer. In the early 1980s, the IBM personal computer (PC) was introduced and
`was quickly adopted as the industry standard hardware platform. However, even though the hardware
`platform was relatively standard, each independent software vendor created significantly different user
`interfaces for their respective application programs. This, in turn, proved to be an impediment to the
`rapid adoption of new application programs by the users of personal computers. Because users were
`unable to efficiently use new software applications without extensive training, many new software
`applications were not adopted.
`[0010]
`PROBLEMS TO BE RESOLVED BY THE INVENTION
`Today, however, new standards have been developed and adopted for personal computer software
`applications which dramatically reduce the amount of re-learning that must take place for new software
`applications. State-of-the-art GUI operating systems such as IBM’s OS2 have standardized many
`common user actions and provided independent software developers and vendors with the “hooks” or
`programming tools necessary to access most standard user interface components and features, thereby
`dramatically reducing the learning curve for end-users. Unfortunately, this standardization effort has
`not yet penetrated the WWW. In fact, the ready availability of the WWW as a delivery system for
`software applications has exacerbated the rapid proliferation of the disparate software now available
`over the WWW. In addition, some of the most powerful software applications available have
`non-intuitive, non-graphical user interfaces. The process of re-learning a new interface for each new
`application tends to be tedious, time-consuming and nonproductive. Therefore, even though many
`software applications may be accessible over the WWW today, learning how to access these various
`programs can be time-consuming, frustrating, and intimidating for the end-user.
`[0011]
`MEANS FOR RESOLVING PROBLEMS
`
`Apple Inc. Exhibit 1005
`
`
`
`Recognizing both the importance of providing access to software applications over the WWW, and
`the current limitations of existing solutions, the present invention provides the capability to easily
`access many different application programs over the WWW via a standardized GUI. By providing
`standard procedures, routines, tools, and software “hooks” for accessing software applications over the
`WWW, software developers can concentrate on the functionality of the application program and easily
`use HTML to provide a GUI interface for the application program.
`[0012]
`As mentioned above, HTML is a well-known language which can be used by almost any computer
`system on the market today. In addition, since HTML is a fairly well controlled and standardized
`language, new software application features can be added as they are developed and supported by
`HTML. In addition, since HTML is a widely adopted, non-proprietary technology, the present
`invention can provide open access to a large market for even very small software developers. Further,
`the present invention also allows software developers to adopt a standard access protocol, which allows
`them to provide support for any computer system which is capable of utilizing a HTML cognizant
`browser. Finally, by providing easy-to-implement, standardized solutions to the issues of user interface,
`authentication/security, and web transaction support, the common user interface of the present
`invention overcomes the limitations existing in previous solutions.
`[0013]
`The foregoing and other features and advantages of the invention will be apparent from the
`following more particular description of preferred embodiments of the invention, as illustrated in the
`accompanying drawings.
`[0014]
`DESCRIPTION OF THE PREFERRED EMBODIMENTS
`OVERVIEW
`Web Transactions
`Referring now to FIG. 2, a typical transaction between a standard web browser 212 running on a
`client workstation 210 and a web server application 222 running on a web server computer system 220
`occurs over a connection 216. Client workstation 210 may be coupled to other computer systems via a
`local area network (LAN) or via any other type of computer network or other interconnection.
`Likewise, web server computer system 220 may be coupled to other computer systems as well. Client
`workstation 210 may be any computer that is capable of providing access to the WWW by using web
`browser 212. This would include handheld, portable or laptop computers, standard desktop computer
`systems, Personal Digital Assistants (PDAs), nonprogrammable terminals connected to a mainframe,
`etc.
`[0015]
`Web browser 212 is a software program running on client workstation 210 that allows a user at
`client workstation 210 to communicate with other computers over connection 216. Web browser 212
`
`Apple Inc. Exhibit 1005
`
`
`
`would include any web browser which is capable of transmitting and receiving data over the WWW.
`This includes commercial software applications such as IBM’s WebExplorer, Netscape Navigator,
`Microsoft Internet Explorer, Apple Computer’s CyberDog, and any other software application which
`now exists or which may be developed in the future for accessing or processing information over the
`WWW. A preferred embodiment for connection 216 is any suitable connection to the Internet,
`including a hardwired connection, telephone access via a modem or high-speed T1 line, infrared or
`other wireless communications, computer network communications (whether over a wire or wireless),
`or any other suitable connection between computers, whether currently known or developed in the
`future.
`[0016]
`It should be noted that client workstation 210 and web server computer system 220 may be the same
`physical and/or logical computer system. Web browser 212 typically displays pages of HTML data to a
`user at client workstation 210. Other types of data (besides HTML) may also be transmitted to web
`browser 212, including text data, graphical data (e.g., Graphic Image Format (GIF) files), audio data or
`sound files (e.g., WAV files), Java applets (executable code) and a specialized data form known as
`Multipurpose Internet Mail Extensions (MIME) data (which may include combinations of the foregoing
`and other data types).
`[0017]
`Web server application 222 is a software program running on web server computer system 220 that
`allows a user at client workstation 210 to access information controlled by web server 220. One
`preferred embodiment of web server application 222 in accordance with the present invention is a
`commercial web server application such as IBM’s Internet Connection Server. Other applications are
`also compatible with the present invention. Web server computer system 220 typically outputs pages of
`HTML data to WEB browser 212 in response to requests by web browser 212 that reflect action taken
`by the user at client workstation 210. In addition, as explained above, web server computer system 220
`may output other types of data to web browser 212 as well. Output data may include static HTML pages
`(meaning that the content of the page does not vary), or may include data that must be dynamically
`determined and inserted into the output data. Web server application 222 may dynamically build output
`data (e.g., an HTML page) from parts that it retrieves from memory within web server computer system
`220 or from other computer systems, or may simply pass through an HTML page or other information
`that has been developed at an earlier time or by another computer.
`[0018]
`Web browser 212 typically interacts with web server application 222 by transmitting input (e.g., a
`Uniform Resource Locator (URL) or an HTML page) over connection 216 to web server computer
`system 220. This input is typically transmitted using Hypertext Transfer Protocol (HTTP) 1.0. Web
`server computer system 220 running web server application 222 receives the input from web browser
`212, and in response, outputs data (e.g., an HTML page) to browser 212. The process described above
`
`Apple Inc. Exhibit 1005
`
`
`
`illustrates a basic transaction over the Internet, recognizing that many details and variations that are
`within the scope of the present invention are not disclosed herein for the purpose of providing a simple
`context for understanding the concepts of the present invention.
`[0019]
`Web server computer system 220 may also have numerous other software components, including
`Common Gateway Interface (CGI) modules. CGI modules may be used as an interface between web
`server application 222 and other software applications. For example, a CGI module could provide a link
`between web server 222 and a calendar software application, allowing web server 222, for example, to
`insert dynamic calendar information into the web pages it outputs to web browsers 212. Thus, CGIs
`allow web servers to distribute dynamic data from other software applications. Unfortunately,
`programming a CGI is a time-consuming task, given the numerous specifications that a CGI should
`satisfy. Furthermore, a separate CGI is generally needed for each different software application to be
`interfaced with the web server 222. Additionally, different CGI’s may be required to perform different
`functions, such as granting different users different levels of access to the same software application or
`data. In general, as the number of CGIs increases, the performance of web server computer system 220
`decreases.
`[0020]
`Web Pages
`Referring now to FIG. 3, a web page is primarily visual data that is intended to be displayed on the
`monitor of client workstation 210. Web pages are generally written in Hypertext Markup Language
`(HTML). When web server application 222 running on web server computer system 220 receives a web
`page request from web browser 212, it will build a web page in HTML or retrieve a file containing a
`pre-built web page and send it across connection 216 to the requesting web browser 212. Web browser
`212 understands HTML and interprets it and outputs the web page to the monitor of client workstation
`210. This resulting web page, displayed on the user’s screen, may cont