throbber
United States Patent [191
`Hesse et al.
`
`I lllll llllllll Ill lllll lllll lllll lllll lllll 111111111111111111111111111111111
`US005950010A
`[HJ Patent Number:
`[451 Date of Patent:
`
`5,950,010
`*Sep.7,1999
`
`[54] SYSTEM AND METHOD FOR CUSTOMIZED
`APPLICATION PACKAGE BUILDING AND
`INSTALIATION
`
`(75]
`
`Inventors: Frederick W. Hesse, Littleton; Patti J.
`Kato, Denver, both of Colo.
`
`(73] As.signee: J.D. Edwards World Source Co.,
`Denver, Colo.
`
`[ *] Notice:
`
`This patent i5sued on a continued pros(cid:173)
`ecution application filed under 37 CPR
`l.53(d), and is subject to the twenty year
`patent term provisions of 35 U.S.C.
`154(aX2).
`
`(21] Appl. No.: 08/756,067
`
`Nov. 25, 1996
`
`(22] Filed:
`Int. C l.6
`... .......................................... ... ... ... G06F 9/445
`[51]
`[52] U.S. Cl . ................................ 395/712; 709/2W; 713/1
`(58] Field of Search ................................. 395/ 712, W0.5,
`395/200.51, W0.52, 651, 652, 653; 709/220,
`221, 222; 713/1, 2, 100
`
`(56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,432,941
`5,524,246
`5,666,501
`5,671,420
`5,684,996
`5,694,546
`5,715,463
`5,721,824
`5,734,822
`
`7 /1995 Crick et al. .................... ... ... ... 395/651
`6/1996 Hurley et al. ........................... 395/651
`9/1997 Jones et al. ........................ 395/200.52
`9/1997 Bell et al. ............................... 395/712
`11/1997 Westerholm et al. ................... 395/712
`12/1997 Reisman .................................. 395/712
`2/1998 Merkin .................................... 395/712
`2/1998 Taylor ..................................... 395/712
`3/1998 Houha et al .
`........................ 395/200.5
`
`OTHER PUBLICAl.lONS
`"Microsoft Systems Management Server", Microsoft Cor(cid:173)
`poration, Redmond, WA, 1994.
`" Microsoft Systems Management Server for Windows NT
`Administrator's Guide", Document No. 66254, Microsoft
`Corporation, Redmond, WA, 1993- 1995.
`"Future- Proof Solutions", J.D. Edwards & Co., Denver, CO,
`1995.
`"Case Tools and 4GLs: The Enterprise Distinction", J.D.
`Edwards & Co., Denver, CO, 1995.
`"One World and the Event-Driven Model", J .D. Edwards &
`Co., Denver, CO, 1995.
`"One World Integrated Toolset Highlights'', J .D. Edwards &
`Co., Denver, CO, 1995.
`Primary Examiner~ric W. Stamber
`Attorney, Agent, or Firm-Fenwick & West LLP
`[57]
`ABSTRACT
`
`A system for building and installing custom application
`packages in a distributed computing environment that
`includes a server computer and a client computer coupled
`through a network . The server computer includes a storage
`media subsystem, a build subsystem, and a server package
`storage, all of which are coupled together. The client com(cid:173)
`puter includes a storage media subsystem, an installation
`subsystem, and a local application package storage, all of
`which are coupled together. Application packages are cre(cid:173)
`ated through the build subsystem by bundling one or more
`application modules and/or application executables together
`using and then storing the application packages in the server
`package storage. The application packages are then installed
`through the installation subsystem on the client computer in
`the local application storage. The present invention also
`includes a method for building and installing custom appli(cid:173)
`cation packages on a client computer.
`
`10 Claims, 12 Drawing Sheets
`
`SERVER COMPUTER 111
`
`BUSINESS
`VIEWS
`4 10
`
`DYNAMIC LINK
`LIBRARI ES
`420
`
`215
`
`105
`
`REPORT
`OE~L()Pt.A ENT
`425
`
`DATA
`DICTIONARY
`
`"'°
`
`225
`
`BUSINESS
`LOGtC 435
`
`FORM
`TABLE
`DEVELOPMENT OEVELOl'MENT
`440
`'45
`
`BUS.NESS
`VtEW 450
`
`COUPILER 455
`
`230
`
`CODE
`GENERATOR
`.ieo
`
`DEVELOl't.tENT CLIENT 121
`
`IPR2017-00184
`UNIFIED EX1006
`
`

`
`U.S. Patent
`
`Sep.7,1999
`
`Sheet 1of12
`
`5,950,010
`
`D
`
`D _
`
`~o:
`
`MACINTOSH COMPATIBLE
`120b
`
`IBM COMPATIBLE
`120a
`
`D
`
`=· · · · · ··
`WORKSTATION .__, NETWORK
`120c
`190
`
`DEPLOYMENT SERVER
`110a
`
`FILE SERVER
`110b
`
`100
`
`•
`
`(
`
`(
`
`•
`
`( c
`
`•
`
`(
`
`(
`
`DATA
`SERVER
`110c
`
`FIG. 1A
`
`

`
`U.S. Patent
`
`Sep.7,1999
`
`Sheet 2 of 12
`
`5,950,010
`
`PROCESSOR
`145
`
`MEMORY 150
`
`.o..
`
`BUS 140
`
`STORAGE
`DEVICE 155
`
`NETWORK
`CONNECTION
`160
`
`CLIENT COMPUTER 120a
`
`"
`
`NETWORK 190
`
`FIG. 18
`
`

`
`d •
`\JJ.
`•
`
`BUILD SUBSYSTEM 205
`
`'--
`
`I
`RELATIONAL DATABASE
`210
`I
`SYSTEM APPLICATION
`STORAGE 215
`SERVER COMPUTER 111
`
`-
`
`NETWORK
`190
`
`DEVELOPMENT TOOLS
`220
`CODING
`TOOLS
`230
`
`CASE
`TOOLS
`225
`
`DEVELOPMENT CLIENT 121
`
`INSTALL
`MENU
`DRIVER -
`SUBSYS
`250
`235
`I
`I
`LOCAL APPLICATION
`STORAGE 240
`
`CLIENT COMPUTER 122
`
`FIG. 2
`
`--103
`
`

`
`U.S. Patent
`
`Sep.7,1999
`
`Sheet 4 of 12
`
`5,950,010
`
`310
`
`315
`
`320
`
`325
`
`START
`
`CREATE
`APPLICATION
`MODULE AT
`DEVELOPMENT
`CLIENT
`
`STORE
`APPLICATION
`IN SERVER
`
`CREATE
`APPLICATION
`PACKAGE AT
`SERVER
`
`INSTALL V 330
`APPLICATION I
`PACKAGE AT
`USER CLIENT
`
`FIG. 3
`
`END
`
`335
`
`

`
`U.S. Patent
`
`Sep.7,1999
`
`Sheet 5 of 12
`
`5,950,010
`
`SERVER COMPUTER 111
`
`RELATIONAL
`DATABASE 210 r - - OBJECT LIBRARIAN 405
`
`I
`
`I
`
`BUSINESS
`VIEWS
`410
`
`BUSINESS
`LOGIC
`415
`
`DYNAMIC LINK
`LIBRARIES
`420
`
`TABLES 422
`
`215
`
`I
`NETWORK
`190
`
`I
`
`105
`
`REPORT
`DEVELOPMENT
`425
`
`DATA
`DICTIONARY
`430
`
`225
`
`BUSINESS
`LOGIC 435
`
`FORM
`DEVELOPMENT
`440
`
`TABLE
`DEVELOPMENT
`445
`
`BUSINESS
`VIEW450
`
`COMPILER 455
`
`I
`230
`
`CODE
`GENERATOR
`460
`
`DEVELOPMENT CLIENT 121
`
`FIG. 4
`
`

`
`U.S. Patent
`U.S. Patent
`
`Sep.7,1999
`Sep.7,1999
`
`Sheet 6 of 12
`Sheet 6 of 12
`
`5,950,010
`5,950,010
`
`::;;?
`er:
`0
`LL
`
`..0
`0
`('I)
`L()
`
`::;;?
`er:
`0
`LL
`
`<ti
`0
`('I)
`L()
`
`-
`
`
`
`m_._3ao_>_ZO_._.<O_._n_n_<
`
`w
`w
`....J
`=>
`I- w
`0
`=> 0
`0 ::;;?
`(/) 0
`z ()
`::;;? <(
`z er:
`0 ::;;?
`0 (9 -o I- w
`I- er:
`<( I-
`() Cf)
`<( 0...
`....J >-
`()
`0... (/)
`....J
`0...
`0...
`0...
`<(
`<(
`
`0
`0%
`N
`L()
`
`s_<moom_n_
`
`0
`2m
`'Of'"'"
`L()
`
`
`
`maoos_m:m>m
`
`-
`
`mtzwZO_._.<0_._n_n_<
`
`66GE
`
`~
`•
`Cl
`iI:
`
`'Of'"'"
`N
`'Of'"'"
`
`I-
`
`z w
`
`....J
`()
`
`§._.Zm=:_O._.Zm_>_n_O._m_>m_D
`
`
`
`I-z w
`
`::;;?
`0...
`0
`....J w
`> w
`
`0
`
`

`
`U.S. Patent
`U.S. Patent
`
`Sep.7,1999
`Sep.7,1999
`
`Sheet 7 of 12
`Sheet 7 of 12
`
`5,950,010
`5,950,010
`
`_J
`_J
`
`0 z c.o
`23m
`mmm
`0::: ::J N
`>- 0::: LO
`<(
`a_
`
`._._om><n_
`
`._.0m:.Ow_n_>>m__>mm
`
`I-u
`w
`o:?
`0::: 0:::
`
`"""')
`
`I-
`z
`0::: :?
`a_ 0:::
`~o
`U LL
`w
`I
`u
`
`
`
`._.Z_N_n_v_om__._o
`
`_>_mon_
`
`_J
`_J N
`Nwm
`o'I""""
`0::: LO
`>-
`<(
`a_
`z
`0
`I-
`<( u
`_J
`a_
`a_
`<(
`
`
`
`._._Om><m”ZO_H<O_._n_n_<
`
`Ol
`Lt)
`ci
`Li:
`
`mmGE
`
`~ 0
`_>_m_Ou_
`
`W:?
`:? 0:::
`I- 0
`0::: LL
`w
`I-z
`w
`
`
`
`<53m=>__._.m_m_._.Zm_
`
`s_mon_
`a_ 0 S LL
`w
`> w
`
`0:::
`
`N
`('I')
`LO
`
`~
`('I')
`LO
`
`c.o
`('I')
`LO
`
`>-W 0::: N
`:? I- N
`- Z LO
`I- w
`
`~s
`ow~
`I- > N
`vmm
`U) W LO
`0:::
`I
`
`>mo5_:
`
`>>m__>m_m
`
`'I'"""
`
`'I'""" N
`I-z
`w
`_J u
`I-z
`w
`:?
`a_
`0
`_J
`
`
`
`
`
`_‘N_,._.Zm_._O._.Zm__>_n_O._m>m_n_
`
`w > w
`
`0
`
`

`
`U.S. Patent
`
`Sep.7,1999
`
`Sheet 8 of 12
`
`5,950,010
`
`START
`
`610
`
`640
`
`ADD'L BUSINESS
`LOGIC REQ?
`
`620
`
`625
`
`630
`
`SELECT DATA
`ELEMENT
`
`CREATE
`TABLE
`
`CREATE
`BUSINESS
`VIEW
`
`635
`\___
`
`CREATE
`FORMS AND
`REPORTS
`
`670
`
`FIG. 6
`
`Yes
`
`645
`
`No
`
`CREATE
`BUSINESS
`LOGIC
`
`STORE IN
`SPEC FILE
`
`GENERATE C
`CODE FOR
`APPLICATION
`
`COMPILE
`APPLICATION
`
`650
`
`655
`
`660
`
`665
`
`RESULT
`
`CHECK-IN
`
`

`
`730
`
`OBJECT LIBRARY LIST~ 710
`SUITE ~ 720
`MODULE J
`06 (PAYROLL)
`P0610 (TIME ENTRY)
`06 (PAYROLL)
`P0610 (TIME ENTRY)
`06 (PAYROLL)
`P0615 (PAYROLL RUN)
`06 (PAYROLL)
`P0620 (HISTORY)
`06 (PAYROLL)
`P0620 (HISTORY)
`09 (GEN ACCT)
`P0910 (GEN LEDGER)
`41 (INVENTORY)
`P4110 (STOCK)
`
`740~
`FORMS (WINDOW)
`W0610A (ENTER DATA)
`W0610B (REV PROJ)
`R0615A (CHECK PRT)
`W0620A (EMPL HIST)
`W0620B (PROJ HIST)
`W091 QA (DAILY LEDGE)
`W411 OA (CURR STK)
`
`FIG. 7
`
`d •
`\JJ.
`•
`
`PACKAGE LIST...._____ 810
`820
`PACKAGE-'
`ALL
`06
`41
`41U
`41U
`41PLUS
`
`830
`DESCRIPTION_/
`ALL SOFTWARE
`PAYROLL
`INVENTORY
`INVENTORY UPDATE 1
`INVENTORY UPDATE 2
`INVENTORY PLUS
`TIME ENTRY
`PAYROLL PLUS
`MS EXCEL
`SPECIAL APPS
`
`06PLUS
`
`SPECL
`
`COMBINE
`
`ACCOUNTING PLUS
`SPECIAL APPS
`FIG. 8
`
`(840
`OBJECTS
`*ALL
`06
`41
`P41100
`P41200
`41
`P0610
`06
`EXCEL.EXE
`P0650
`P0655
`03
`SPECL
`
`(850
`
`( 860
`
`OBJ TYPE PK TYPE
`I
`I
`I
`u
`u
`I
`I
`I
`I
`I
`I
`I
`I
`
`SY
`SY
`APPL
`APPL
`SY
`APPL
`SY
`EXE
`APPL
`APPL
`SY
`PKG
`
`

`
`RELATIONAL
`DATABASE 210
`I
`
`215
`BUSINESS
`VIEWS
`410
`
`BUSINESS LOGIC
`415
`
`I
`
`I TABLES 422 I
`
`~
`
`DYNAMIC
`LINK
`LIBRARIES
`420
`I
`BUILD SUBSYSTEM
`205
`
`U.S. Patent
`
`Sep.7,1999
`
`Sheet 10 of 12
`
`5,950,010
`
`SERVER COMPUTER 111
`
`OBJECT LIBRARIAN 405
`
`I
`
`I
`SERVER PACKAGE
`STORAGE 905
`
`107
`
`240
`
`I
`
`NETWORK
`190
`
`I
`
`I
`
`SPECIFICATION ~
`FILES
`910
`I
`
`>--
`
`I
`
`'
`LOCAL DYNAMIC '"'
`LINK LIBRARIES 3
`915
`-
`
`I
`
`MENU DRIVER
`235
`
`I
`
`INSTALLATION
`SUBSYSTEM
`250
`
`CLIENT COMPUTER 122
`
`FIG. 9
`
`

`
`U.S. Patent
`
`Sep.7,1999
`
`Sheet 11 of 12
`
`5,950,010
`
`1010
`
`READ
`DEFINITION
`FROM
`PACKAGE LIST
`
`MATCH
`PACKAGE LIST
`DEFINITION
`WITH OBJECT
`LIBRARY LIST
`
`CREATE LIST
`OF MATCHED
`MODULES
`
`READ
`RELATIONAL
`DATABASE
`
`1015
`
`1020
`
`1025
`
`1035
`
`Yes
`
`~l
`
`1040
`
`READ SPEC.
`FILE FROM
`PACKAGE
`LIBRARY
`
`CREATE SPEC.
`FILE FROM
`I RELATIONAL
`; DATABASE
`
`FIG. 10
`
`1045
`
`COPY DLL
`
`1050
`
`No
`
`EVELOPER>
`INSTALL? /
`
`'~<·
`~--Y~~es_L 1055
`
`COPY SOURCE
`CODE
`
`( 1060
`
`CREATE
`DIRECTORY
`FOR PACKAGE
`
`;,
`
`,-- 1065
`
`STORE
`PACKAGE
`
`-
`
`/
`\
`
`RESULT
`
`)
`
`10?0
`
`

`
`d •
`\JJ.
`•
`
`1110
`
`DEFINE USERS
`1130
`J
`1120
`USERID J
`DESCRIPTION
`ALLENR
`ALLEN, RAY
`BROWNJ
`BROWN, JOE
`COURT, ANN
`COURTA
`
`r 1140
`
`SECURITY
`3
`5
`3
`
`JO NESS
`
`JONES, SALLY
`
`4
`
`FIG. 11
`
`1210
`
`DEFINE PACKAGES TO USERS
`1120
`
`USERID J
`ALLENR
`BROWNJ
`COURT A
`
`820
`PACKAGE _/
`06
`41 PLUS
`06
`41PLUS
`
`JO NESS
`
`*ALL
`41PLUS
`06PLUS
`
`FIG. 12
`
`

`
`5,950,010
`
`1
`SYSTEM AND METHOD FOR CUSTOMIZED
`APPLICATION PACKAGE BUILDING AND
`INSTALLATION
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`
`2
`from one or more application suites and/or components of
`one or more third-party applications. Further, there is a need
`for a system to install or update an application package
`without having to update every application and every client
`5 computer having an assigned user in the network and
`without having to recompile an entire application suite.
`
`SUMMARY OF THE INVENTION
`
`The subject matter of this application is related to the
`subject matter of U.S. patent application Ser. No. 08/740,
`360, entitled "SYSTEM AND METHOD FOR INSTALL-
`ING APPLICATIONS ON AN AS NEEDED BASIS", filed
`on Oct. 28, 1996, by Glenn S. Yinger, Charles E. McVaney,
`and James L. Foos.
`
`BACKGROUND OF THE INVENTION
`
`10
`
`15
`
`In general, the system of the present invention includes a
`distributed computing system having at least one server
`computer and at least one client computer coupled by a
`network. The system of the present invention builds custom
`computer application packages which are then installed from
`a server computer to a client computer.
`The server computers include application suites, applica(cid:173)
`tion packages, and commercially-available applications. The
`application suites relate to enterprise functions such as
`payroll, inventory, accounts payable, and budgeting. The
`application suites are further defined by application modules
`20 or programs that include data or information that is usually
`specific to the particular application suite to which the
`application module is associated. For example, the payroll
`suite may include a time entry application module and an
`address application module, as well as a compensation
`25 application module, all of which are required to process a
`payroll in an enterprise.
`The application packages are comprised of one or more
`application modules or programs from the one or more
`application suites. The application packages may include
`only particular application modules from one or more appli-
`cation suites, but not an entire application suite, or may
`include one or more entire application suites plus particular
`application modules from other application suites.
`The system of the present invention builds an application
`package by linking various application modules, the various
`application suites, and/or various commercially-available
`applications and then providing select system users access to
`the newly built application package. The application pack(cid:173)
`age is then installed over the network on the select users'
`client computers. Thus, the select users are given access to
`particular application modules without requiring access to
`and installation of the entire application bundle just to get
`access to a particular application module.
`The present invention includes a method to build appli-
`cation packages. The method includes the steps of defining
`an application module, storing the application module,
`selecting the application module from a list of application
`modules and adding the selected application module to the
`50 application package. This process is continued until all the
`application modules necessary to create an application pack(cid:173)
`age are added to the application package list. After all the
`application modules sought are added, the application pack(cid:173)
`age is linked together and the application package is
`55 assigned to selected users in the master file. The application
`package is then installed at the client computer of the
`selected user authorized to install the application package.
`The system and method of the present invention offer an
`advantage of installing particular application modules or
`group of modules for a user of a client/server system without
`requiring an entire application suite to be installed to be able
`to have access to the particular application module. A benefit
`of the system and method of the present invention is that
`fewer system resources, such as client computer storage
`65 space, are required for operation. Another benefit is an
`additional layer of system security is introduced because not
`every application module of an application suite is required
`
`30
`
`1. Field of the Invention
`This invention generally relates to the field of data pro(cid:173)
`cessing systems and, more specifically, to the field of build(cid:173)
`ing and installing custom application packages in a distrib(cid:173)
`uted computing environment.
`2. Description of the Related Art
`Modern data processing systems are often implemented as
`distributed computing environments. A typical distributed
`computing environment configuration includes one or more
`"client" computers, including personal computers and
`workstations, that communicate with one or more "server"
`computers. In this "client/server" environment, the client
`computers request data, files, or other information from the
`server computer and the server computer serves the client
`with the requested information. In some distributed com(cid:173)
`puting environments, a computer may operate as a client
`computer and as a server computer.
`In many modem client/server environments, the number
`of application suites, or products, necessary to perform 35
`business tasks is becoming increasingly large. In some
`client/server environments all the components of an appli(cid:173)
`cation bundle are installed on each client computer's storage
`device. Thus, as the number and size of the application
`bundles increases, the amount of space necessary to store the 40
`application bundle becomes increasingly large. In many
`instances not every user requires an entire application
`bundle installed on the client computer, particularly those
`users involved with doing specific tasks versus system-wide
`tasks.
`Recognizing this problem, some modern data processing
`systems have environments in which the full application
`bundle is broken into smaller components, specifically
`application suites. For example, the software may include
`one application suite of each Sales Order Processing,
`Payroll, Human Resources, and Budgeting, rather than a
`single application bundle encompassing all four application
`suites. The problem, however, with the prior art systems is
`that the application suites are not further broken into a
`sufficient number of individual components so that portions
`of each suite may be installed and available to users who do
`not require access or should not have access, to an entire
`application suite. For example, an order entry clerk in an
`organization probably would not require access to an entire
`payroll application, despite having to enter his or her work- 60
`ing time entries (which is typically part of the payroll suite).
`Thus, the clerk would simply forward his time entry to one
`having the payroll application so that person may enter the
`time, rather than having the entire payroll application
`installed on the clerk's client computer.
`Therefore, there is a need for a system that customizes an
`application package for particular users using components
`
`45
`
`

`
`5,950,010
`
`3
`to be installed on a client computer when a user needs access
`to a particular application module.
`The features and advantages described in the specification
`are not all-inclusive and, in particular, many additional
`features and advantages will be apparent to one of ordinary
`skill in the art in view of the drawings, specification, and
`claims. Moreover, it should be noted that the language used
`in the specification has been principally selected for read(cid:173)
`ability and instructional purposes, and may not have been
`selected to delineate or circumscribe the inventive subject
`matter.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. lA is a block diagram illustrating a client/server
`system in accordance with the present invention;
`FIG. lB is a block diagram illustrating components of a
`client computer in accordance with the present invention;
`FIG. 2 is a block diagram illustrating a custom application
`package building and installation system in accordance with
`the present invention;
`FIG. 3 is a flow diagram illustrating an overview of
`custom application package building and installation pro(cid:173)
`cess in accordance with the present invention;
`FIG. 4 is a block diagram illustrating an application
`module development system in accordance with the present
`invention;
`FIGS. SA and SB are block diagrams illustrating layers
`within an application suite in accordance with the present
`invention;
`FIGS. 6 is a flow diagram illustrating a process of
`assembling application modules in accordance with the
`present invention;
`FIG. 7 is a table of an object librarian list in accordance
`with the present invention;
`FIG. 8 is a table of a package list in accordance with the
`present invention;
`FIG. 9 is a block diagram illustrating an application
`package installation system in accordance with the present
`invention;
`FIG. 10 is a flow diagram illustrating a process
`building an application package in accordance with
`present invention;
`FIG. 11 is a table for user definitions of users in the
`client/server system in accordance with the present inven(cid:173)
`tion; and
`FIG. 12 is a table for defining application packages to
`users of the client/server system in accordance with the
`present invention.
`
`for
`the
`
`DESCRIPTION OF A PREFERRED
`EMBODIMENT
`The present invention provides a system and method for
`bundling various computer applications or application mod(cid:173)
`ules together to build an application package, and installing
`the application package on a computer, such as client
`computers 120a-120c in FIG. lA, in a distributed comput(cid:173)
`ing environment. FIG. lA is a block diagram illustrating a
`client/server system 100 for data processing in accordance
`with the present invention. The client/server system includes 60
`server computers llOa-llOc and client computers
`120a-120c connected through a network 190. Each connec(cid:173)
`tion on the network 190 may be referred to as a node. It is
`noted that the server computers llOa-llOc may also operate
`as client computers and the client computers 120a-120c
`may also operate as server computers in the client/server
`system 100.
`
`4
`In a preferred embodiment of the present invention, the
`client computers 120a-120c are conventional personal com(cid:173)
`puters or workstation machines having conventional hard(cid:173)
`ware components such as a bus 140, a processor 14S, a
`5 memory lSO, a storage device lSS, and a network connec(cid:173)
`tion 160, as illustrated in FIG. lB. The processor may be a
`conventional processor that is commercially available such
`as a Pentium™ processor by Intel Corporation (Santa Clara,
`Calif.), a PowerPC™ processor by IBM Corporation
`10 (Armonk, N.Y.) or Motorola, Inc. (Schaumburg, Ill.), an
`Alpha™ processor by Digital Equipment Corporation
`(Maynard, Mass.), or a SPARC™ processor by Sun
`Microsystems, Inc. (Mountain View, Calif.). The client
`computers 120a-120c use conventional software operating
`15 environments that are commercially available such as
`Microsoft Windows™ from Microsoft Corporation
`(Redmond, Wash.), Apple System 7.x from Apple
`Computer, Inc. (Cupertino, Calif.), or Unix-based operating
`systems. In various embodiments, the client computers
`20 120a-120c connected to the network 190 may be of the
`same or different hardware and software platform types.
`The server computers llOa-llOc may be conventional
`personal computers, workstation machines, mid-range com(cid:173)
`puter platforms, or large system computer platforms. The
`25 server computers llOa-llOc have conventional hardware
`components, such as those illustrated for the client computer
`120 in FIG. lB, including a bus, a processor, a memory, a
`storage device, and a network connection. The server com(cid:173)
`puters llOa-llOc use conventional software operating envi-
`30 ronments depending on the available hardware platform. For
`example, an OS/400 operating system is used on an
`AS/400™ mid-range computer by IBM Corporation
`(Armonk, N.Y.), a HP-UX operating system is used on an
`HP-9000™ mid-range computer by Hewlett-Packard Cor-
`35 poration (Palo Alto, Calif.), a Microsoft Windows NT™
`operating system is used on an Alpha TM System by Digital
`Equipment Corporation (Maynard, Mass.), or a MYS or VM
`operating system is used on an ES/9000™ large system
`computer by IBM Corporation (Armonk, N.Y.). The server
`40 computers llOa-llOc may also operate on other conven(cid:173)
`tional software operating environments such as Microsoft
`Windows or Unix-based operating systems. Similar to the
`client computers 120a-120c, the server computers
`llOa-llOc connected to the network 190 may, in various
`45 embodiments, be of the same or different hardware and
`software platforms.
`The network 190 interconnects the client computers
`120a-120c and the server computers llOa-llOc. In a pre(cid:173)
`ferred embodiment the network 190 is a conventional logical
`50 network such as a local area network ("LAN") or a wide area
`network ("WAN"), as appropriate for the particular embodi(cid:173)
`ment in which the system 100 is to operate. In accordance
`with the present invention, the logical network is physically
`implemented using commercially available conventional
`55 network hardware and software such as a file server com(cid:173)
`puter using a Novell NetWare™ from Novell Corporation
`(Provo, Utah) or Microsoft Windows NT™ from Microsoft
`Corporation (Redmond, Wash.) network operating system
`software.
`In a preferred embodiment of the present invention, the
`server computers include application suites and application
`packages. The application suites relate to computer appli(cid:173)
`cation programs that perform enterprise functions such as
`payroll, inventory, accounts payable, and budgeting. The
`65 application suites are further defined by individual applica(cid:173)
`tions or application modules that include data or information
`that is usually specific to the particular application suite to
`
`

`
`5,950,010
`
`5
`
`5
`which the application module is associated. For example, the
`payroll suite may include a time entry application module
`and an address application module, as well as a compensa(cid:173)
`tion application module, all of which are required to process
`a payroll in an enterprise.
`The application packages are comprised of one or more
`application modules or programs from the one or more
`application suites. The application packages may include
`only particular application modules from one or more appli(cid:173)
`cation suites, but not an entire application suite, or may 10
`include one or more entire application suites plus particular
`application modules from other application suites. Further,
`each application module is comprised of a logical group of
`forms that are associated with specific application functions
`or elements, such as data entry or file browsing. In addition, 15
`an application may be a third-party application such as a
`Microsoft Word word processor from Microsoft Corporation
`(Redmond, Wash.), or a graphics package such as Corel
`Draw from Corel Corporation (Ottawa, Canada). As will be
`further described below, the system and method of the 20
`present invention configures application packages from the
`applications and application modules in the client server
`system 100 for installation in the client/server environment.
`FIG. 2 is a block diagram illustrating a custom application
`package building and installation environment 103 in accor- 25
`dance with the present invention. The custom application
`package building and installation environment 103 operates
`within the client/server system 100. The custom application
`package building and installation environment 103 includes
`a server computer 111, that is functionally equivalent to one 30
`or more of the server computers llOa-llOc of the client/
`server system 100, a development client computer 121 and
`a user client computer 122, both of which are functionally
`equivalent to one or more of the client computers 120a-120c
`of the client/server system 100, and the network 190 for 35
`connecting the various computers to one another.
`In a typical client/server environment, there are one or
`more application bundles (not illustrated). An application
`bundle is a combination of enterprise type application suites
`bundled together. An example of an application bundle is a 40
`bundle for operating a manufacturing facility, that may
`include individual application suites for payroll, accounting,
`inventory, and the like. Thus, the application bundle is
`comprised of one or more application suites and is not
`broken down any further. Referring briefly to FIGS. SA and 45
`SB, in the client/server system 100 an application suite or
`system code SlO is an enterprise type application such as a
`payroll application Sl2, an inventory application, or a sales
`order application. Each application suite SlO is comprised of
`one or more application modules or programs S20 such as a 50
`time entry module S22, history review module S24, or
`payroll run module S26 within a payroll application suite
`Sl2. Each application module S20 is further comprised of
`forms S30a, S30b that define particularities of an application
`module S20 such as a data entry field, an application window 55
`size, or an interaction button for doing a task. For example,
`the payroll run module S26 includes a time entry data form
`S32, a review project form S34, and a check print form S36.
`The forms are defined by a set of specification information,
`of which a master copy of the specification information is 60
`stored on the server computer 111. An application package
`is comprised of one or more application modules of various
`application suites, either alone or in combination with entire
`application suites, as further described below in FIGS. 4
`through 8.
`Turning back to FIG. 2, the server computer 111 includes
`a build subsystem 20S, a system application storage 21S, and
`
`6
`a file structure for storage, such as a relational database 210,
`all of which are coupled together. The build subsystem 20S
`assembles application packages for the client/server system
`100. The file structure for storage may be any file structure
`that allows for indexing application components such as
`executables, specifications and file lists. Indexing identifies
`which files are associated with a particular application
`module S20. In a preferred embodiment, the file structure is
`the relational database 210. The relational database 210
`stores the specification information for the application mod(cid:173)
`ules in the client/server system 100. In a preferred
`embodiment, the relational database 210 is implemented by
`a conventional relational database such as SQL Server from
`Microsoft Corporation (Redmond, Wash.), Oracle7 from
`Oracle Corporation (Redwood Shores, Calif.), or DB2 from
`IBM Corporation (Armonk, N.Y.). The system application
`storage 21S is a files segment where applications, including
`application package components, are stored. The build sub(cid:173)
`system 20S, the relational database 210, and the system
`application storage are all stored on the storage medium of
`the server computer 111.
`The development client computer 121 includes develop-
`ment tools 220 that are used for creating the application
`modules or other application components for the client/
`server system 100. The development tools 220 are com(cid:173)
`prised of computer assisted software engineering ("CASE")
`tools 22S as well as coding tools 230. The CASE tools 22S
`are used to create and design an application module and the
`coding tools 230 are used to generate and compile the
`programming code for the created application module. Both
`the CASE tools 22S and the development tools 230 are
`further described in FIG. 4 below. The development tools
`220 are stored on the storage device of the development
`client computer 121.
`The user client computer 122 includes a menu driver 23S
`and a local application storage 240 that are coupled to one
`another. The menu driver 23S provides the executable code
`to launch application programs on a client computer 122 or
`to launch a server application from the server computer 111
`in the client/server system 100. The local application storage
`240 is where application packages located on the client
`computer 122 are stored. The user client computer 122 also
`includes an installation subsystem 2SO that is coupled to the
`menu driver 23S and the local application storage 240. The
`installation subsystem 2SO is used to install application
`packages on the user client computer 122. In a preferred
`embodiment, the installation subsystem 2SO may reside on
`the server computer 111. When an application is ready for
`installation, the installation subsystem 2SO is loaded into the
`memory lSO of the client computer 122 from the server
`computer 111 to run the installation process from the client
`computer 122. In an alternative embodiment, the installation
`subsystem 2SO may reside and be run from the server
`computer 111. The menu driver 23S, local application stor(cid:173)
`age 240, and the installation subsystem 2SO are stored on the
`storage device lSS of the user client computer 122.
`FIG. 3 is a flow diagram illustrating an overview of a
`process for building and installing application packages
`using the custom application package building and installa(cid:173)
`tion environment 103 of FIG. 2 in accordance with the
`present invention. Once the custom application package
`building and installation environment 103 starts 310
`operation, an application module is created 31S at the
`development client computer 121 using the development
`65 tools 220 at the client computer 121. Once the application
`module has been created 31S, the application module is
`stored 320 in the server computer 111. Specifically, the
`
`

`
`5,950,010
`
`5
`
`7
`application module code is stored in the system application
`storage 215 and the application module specifications are
`stored in the relational database 210. The build subsystem
`205 at the server computer 111 then creates 325 or builds an
`application package that is also stored in the system appli-
`cation storage 215. The application package is installed 330
`at the user client computer 122 using the installation sub(cid:173)
`system 250 for selecting the application package and having
`the application package stored in the local application stor(cid:173)
`age 240.
`FIG. 4 is a block diagram illustrating an application
`module development system 105 in accordance with the
`present invention. The application module development
`system 105 includes the server computer 111 and the devel(cid:173)
`opment client computer 121 coupled together by the net(cid:173)
`work 190. The server computer includes an

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket