You are on page 1of 25

Case 2:17-cv-00571 Document 1 Filed 08/02/17 Page 1 of 6 PageID #: 1

IN THE UNITED STATES DISTRICT COURT


FOR THE EASTERN DISTRICT OF TEXAS
MARSHALL DIVISION


UNILOC USA, INC. and
UNILOC LUXEMBOURG, S.A., Civil Action No. 2:17-cv-00571

Plaintiffs,

v. PATENT CASE

APPLE INC.,

Defendant. JURY TRIAL DEMANDED

COMPLAINT FOR PATENT INFRINGEMENT

Plaintiffs, Uniloc USA, Inc. (Uniloc USA) and Uniloc Luxembourg, S.A. (Uniloc

Luxembourg) (together, Uniloc), for their complaint against defendant, Apple Inc. (Apple),

allege as follows:

THE PARTIES

1. Uniloc USA is a Texas corporation having a principal place of business at Legacy

Town Center I, Suite 380, 7160 Dallas Parkway, Plano Texas 75024. Uniloc USA also

maintains a place of business at 102 N. College, Suite 603, Tyler, Texas 75702.

2. Uniloc Luxembourg is a Luxembourg public limited liability company having a

principal place of business at 15, Rue Edward Steichen, 4th Floor, L-2540, Luxembourg (R.C.S.

Luxembourg B159161).

3. Apple is a California corporation, having a principal place of business in

Cupertino, California and regular and established place of business at 2601 Preston Road, Frisco,

Texas and 6121 West Park Boulevard, Plano, Texas. Apple offers its products and/or services,

2760493.v1
Case 2:17-cv-00571 Document 1 Filed 08/02/17 Page 2 of 6 PageID #: 2

including those accused herein of infringement, to customers and potential customers located in

Texas and in the judicial Eastern District of Texas. Apple may be served with process through

its registered agent for service in Texas: CT Corporation System, 1999 Bryant Street, Suite 900,

Dallas, Texas 75201.

JURISDICTION AND VENUE

4. Uniloc brings this action for patent infringement under the patent laws of the

United States, 35 U.S.C. 271, et seq. This Court has subject matter jurisdiction under 28

U.S.C. 1331, 1332(a), and 1338(a).

5. Venue is proper in this judicial district pursuant to 28 U.S.C. 1400(b). Apple

has committed acts of infringement in this judicial district, and has a regular and established

place of business in this district, as set forth above.

COUNT I
(INFRINGEMENT OF U.S. PATENT NO. 6,216,158)

6. Uniloc incorporates paragraphs 1-5 above by reference.

7. Uniloc Luxembourg is the owner, by assignment, of U.S. Patent No. 6,216,158

(the 158 Patent), entitled SYSTEM AND METHOD USING A PALM SIZED COMPUTER

TO CONTROL NETWORK DEVICES, which issued April 10, 2001. A copy of the 158 Patent

is attached as Exhibit A.

8. Uniloc USA is the exclusive licensee of the 158 Patent, with ownership of all

substantial rights, including the right to grant sublicenses, to exclude others, and to enforce and

recover past damages for infringement.

9. Apple imports, offers for sale, and sells palm-sized iOS devices having wireless

communication ports and the ability to communicate wirelessly (such as by Bluetooth or over a

WiFi network), to other devices on a network, using software.

2
Case 2:17-cv-00571 Document 1 Filed 08/02/17 Page 3 of 6 PageID #: 3

10. Apple imports, offers for sale, and sells a network device (Apple TV), on which

Apple has installed a program (Apple TV Program) that cannot be executed on Apples palm-

sized iOS devices. (The palm-sized iOS devices and Apple TV are referred to as Accused

Devices.)

11. Apple has installed on its palm-sized iOS devices an application (App Store),

which provides a directory of services, including one that corresponds to the Apple TV Program.

Apple distributes, through its App Store, program code for controlling the service (Apple TV

Remote Application), which when loaded on the palm-sized iOS device, allows that device to

issue control commands to the Apple TV device to control the Apple TV Program. (Apple TV

Remote Application is referred to as the Accused Application.)

12. Apple has infringed, and continues to infringe, claims of the 158 Patent in the

United States, including claims 1, 2, 4, 6-9, 12, and 14-20, by making, using, offering for sale,

selling, and importing the Accused Devices and the Accused Application, in violation of 35

U.S.C. 271(a).

13. Apple has also infringed, and continues to infringe, claims 1, 2, 4, 6-9, 12, and 14-

20 of the 158 Patent by actively inducing others to use, offer for sale, and sell the Accused

Devices and the Accused Application.

14. Apples customers who use those devices and that application in accordance with

Apples instructions infringe claims 1, 2, 4, 6-9, 12, and 14-20 of the 158 Patent, in violation of

35 U.S.C. 271(a). Apple intentionally instructs its customers to infringe through training

videos, demonstrations, brochures, installation and user guides, such as those located at:

www.apple.com, including:

https://www.apple.com/ios/app-store/

3
Case 2:17-cv-00571 Document 1 Filed 08/02/17 Page 4 of 6 PageID #: 4

https://developer.apple.com/ios/

https://support.apple.com/en-us/HT204989

https://support.apple.com/en-us/HT202794

https://developer.apple.com/app-store/product-page/

https://www.apple.com/iphone-7/specs/

www.youtube.com

Apple is thereby liable for infringement of the 158 Patent under 35 U.S.C. 271(b).

15. Apple has also infringed, and continues to infringe, claims 1, 2, 4, 6-9, 12, and 14-

20 of the 158 patent by offering to commercially distribute, commercially distributing, or

importing its Accused Devices and Accused Application, which apparatuses are used in

practicing the processes, or using the systems, of the 158 patent, and constitute a material part of

the invention. Apple knows portions of the software contained in the Accused Devices and

Accused Application to be especially made or especially adapted for use in infringement of the

158 patent, not a staple article, and not a commodity of commerce suitable for substantial

noninfringing use.

16. Apple will have been on notice of the 158 Patent since, at the latest, the service

of this complaint upon it. By the time of trial, Apple will have known and intended (since

receiving such notice) that its continued actions would actively induce and contribute to the

infringement of claims 1, 2, 4, 6-9, 12, and 14-20 of the 158 Patent.

17. Apple may have infringed the 158 Patent through other software and devices

utilizing the same or reasonably similar functionality, including other versions of the Accused

Devices or the Accused Application.

18. Uniloc has been damaged by Apples infringement of the 158 Patent.

4
Case 2:17-cv-00571 Document 1 Filed 08/02/17 Page 5 of 6 PageID #: 5

PRAYER FOR RELIEF

Uniloc requests that the Court enter judgment against Apple:

(A) declaring that Apple has infringed the 158 Patent;

(B) awarding Uniloc its damages suffered as a result of Apples infringement of the

158 Patent;

(C) awarding Uniloc its costs, attorneys fees, expenses, and interest, and

(D) granting Uniloc such further relief as the Court finds appropriate.

DEMAND FOR JURY TRIAL

Uniloc demands trial by jury, under Fed. R. Civ. P. 38.

Date: August 2, 2017 Respectfully submitted,

/s/ Edward R. Nelson III


Paul J. Hayes (Lead Attorney)
Massachusetts State Bar No. 227000
James J. Foster
Massachusetts State Bar No. 553285
Kevin Gannon
Massachusetts State Bar No. 640931
Dean G. Bostock
Massachusetts State Bar No. 549747
Robert R. Gilman
Massachusetts State Bar No. 645224
Michael Ercolini
New York State Bar No. 5029905
Aaron Jacobs
Massachusetts State Bar No. 677545
Tyrus S. Cartwright
Massachusetts State Bar No. 693109
PRINCE LOBEL TYE LLP
One International Place, Suite 3700
Boston, MA 02110
Tel: (617) 456-8000
Email: phayes@princelobel.com
Email: jfoster@princelobel.com
Email: kgannon@princelobel.com
Email: dbostock@princelobel.com
Email: rgilman@princelobel.com
Email: mercolini@princelobel.com
Email: ajacobs@princelobel.com
Email: tcartwright@princelobel.com

5
Case 2:17-cv-00571 Document 1 Filed 08/02/17 Page 6 of 6 PageID #: 6

Edward R. Nelson III


ed@nelbum.com
Texas State Bar No. 00797142
Anthony M. Vecchione
anthony@nelbum.com
Texas State Bar No. 24061270
NELSON BUMGARDNER PC
3131 West 7th Street, Suite 300
Fort Worth, TX 76107
Tel: (817) 377-9111
Fax: (817) 377-3485

ATTORNEYS FOR THE PLAINTIFFS

6
JS 44 (Rev. 12/12)
Case 2:17-cv-00571 Document 1-1 Filed 08/02/17 Page 1 of 3 PageID #: 7
CIVIL COVER SHEET
The JS 44 civil cover sheet and the information contained herein neither replace nor supplement the filing and service of pleadings or other papers as required by law, except as
provided by local rules of court. This form, approved by the Judicial Conference of the United States in September 1974, is required for the use of the Clerk of Court for the
purpose of initiating the civil docket sheet. (SEE INSTRUCTIONS ON NEXT PAGE OF THIS FORM.)

I. (a) PLAINTIFFS DEFENDANTS


UNILOC USA, INC. and UNILOC LUXEMBOURG, S.A. APPLE INC.

(b) County of Residence of First Listed Plaintiff County of Residence of First Listed Defendant
(EXCEPT IN U.S. PLAINTIFF CASES) (IN U.S. PLAINTIFF CASES ONLY)
NOTE: IN LAND CONDEMNATION CASES, USE THE LOCATION OF
THE TRACT OF LAND INVOLVED.

(c) Attorneys (Firm Name, Address, and Telephone Number) Attorneys (If Known)
Edward R. Nelson III, Nelson Bumgardner PC
3131 West 7th Street, Suite 300, Fort Worth, TX 76107
Phone: 817-377-9111

II. BASIS OF JURISDICTION (Place an X in One Box Only) III. CITIZENSHIP OF PRINCIPAL PARTIES (Place an X in One Box for Plaintiff
(For Diversity Cases Only) and One Box for Defendant)
1 U.S. Government 3 Federal Question PTF DEF PTF DEF
Plaintiff (U.S. Government Not a Party) Citizen of This State 1 1 Incorporated or Principal Place 4 4
of Business In This State

2 U.S. Government 4 Diversity Citizen of Another State 2 2 Incorporated and Principal Place 5 5
Defendant (Indicate Citizenship of Parties in Item III) of Business In Another State

Citizen or Subject of a 3 3 Foreign Nation 6 6


Foreign Country
IV. NATURE OF SUIT (Place an X in One Box Only)
CONTRACT TORTS FORFEITURE/PENALTY BANKRUPTCY OTHER STATUTES
110 Insurance PERSONAL INJURY PERSONAL INJURY 625 Drug Related Seizure 422 Appeal 28 USC 158 375 False Claims Act
120 Marine 310 Airplane 365 Personal Injury - of Property 21 USC 881 423 Withdrawal 400 State Reapportionment
130 Miller Act 315 Airplane Product Product Liability 690 Other 28 USC 157 410 Antitrust
140 Negotiable Instrument Liability 367 Health Care/ 430 Banks and Banking
150 Recovery of Overpayment 320 Assault, Libel & Pharmaceutical PROPERTY RIGHTS 450 Commerce
& Enforcement of Judgment Slander Personal Injury 820 Copyrights 460 Deportation
151 Medicare Act 330 Federal Employers Product Liability 830 Patent 470 Racketeer Influenced and
152 Recovery of Defaulted Liability 368 Asbestos Personal 840 Trademark Corrupt Organizations
Student Loans 340 Marine Injury Product 480 Consumer Credit
(Excludes Veterans) 345 Marine Product Liability LABOR SOCIAL SECURITY 490 Cable/Sat TV
153 Recovery of Overpayment Liability PERSONAL PROPERTY 710 Fair Labor Standards 861 HIA (1395ff) 850 Securities/Commodities/
of Veterans Benefits 350 Motor Vehicle 370 Other Fraud Act 862 Black Lung (923) Exchange
160 Stockholders Suits 355 Motor Vehicle 371 Truth in Lending 720 Labor/Management 863 DIWC/DIWW (405(g)) 890 Other Statutory Actions
190 Other Contract Product Liability 380 Other Personal Relations 864 SSID Title XVI 891 Agricultural Acts
195 Contract Product Liability 360 Other Personal Property Damage 740 Railway Labor Act 865 RSI (405(g)) 893 Environmental Matters
196 Franchise Injury 385 Property Damage 751 Family and Medical 895 Freedom of Information
362 Personal Injury - Product Liability Leave Act Act
Medical Malpractice 790 Other Labor Litigation 896 Arbitration
REAL PROPERTY CIVIL RIGHTS PRISONER PETITIONS 791 Employee Retirement FEDERAL TAX SUITS 899 Administrative Procedure
210 Land Condemnation 440 Other Civil Rights Habeas Corpus: Income Security Act 870 Taxes (U.S. Plaintiff Act/Review or Appeal of
220 Foreclosure 441 Voting 463 Alien Detainee or Defendant) Agency Decision
230 Rent Lease & Ejectment 442 Employment 510 Motions to Vacate 871 IRSThird Party 950 Constitutionality of
240 Torts to Land 443 Housing/ Sentence 26 USC 7609 State Statutes
245 Tort Product Liability Accommodations 530 General
290 All Other Real Property 445 Amer. w/Disabilities - 535 Death Penalty IMMIGRATION
Employment Other: 462 Naturalization Application
446 Amer. w/Disabilities - 540 Mandamus & Other 465 Other Immigration
Other 550 Civil Rights Actions
448 Education 555 Prison Condition
560 Civil Detainee -
Conditions of
Confinement
V. ORIGIN (Place an X in One Box Only)
1 Original 2 Removed from 3 Remanded from 4 Reinstated or 5 Transferred from 6 Multidistrict
Proceeding State Court Appellate Court Reopened Another District Litigation
(specify)
Cite the U.S. Civil Statute under which you are filing (Do not cite jurisdictional statutes unless diversity):
35 U.S.C. 271, et seq.
VI. CAUSE OF ACTION Brief description of cause:
Infringement of U.S. Patent No. 6,216,158
VII. REQUESTED IN CHECK IF THIS IS A CLASS ACTION DEMAND $ CHECK YES only if demanded in complaint:
COMPLAINT: UNDER RULE 23, F.R.Cv.P. JURY DEMAND: Yes No
VIII. RELATED CASE(S)
(See instructions):
IF ANY JUDGE SEE ATTACHED CONTINUATION PG. DOCKET NUMBER
DATE SIGNATURE OF ATTORNEY OF RECORD
08/02/2017 /s/ Edward R. Nelson III
FOR OFFICE USE ONLY

RECEIPT # AMOUNT APPLYING IFP JUDGE MAG. JUDGE

Print Save As... Reset


Case 2:17-cv-00571 Document 1-1 Filed 08/02/17 Page 2 of 3 PageID #: 8
JS 44 Reverse (Rev. 12/12)

INSTRUCTIONS FOR ATTORNEYS COMPLETING CIVIL COVER SHEET FORM JS 44


Authority For Civil Cover Sheet

The JS 44 civil cover sheet and the information contained herein neither replaces nor supplements the filings and service of pleading or other papers as
required by law, except as provided by local rules of court. This form, approved by the Judicial Conference of the United States in September 1974, is
required for the use of the Clerk of Court for the purpose of initiating the civil docket sheet. Consequently, a civil cover sheet is submitted to the Clerk of
Court for each civil complaint filed. The attorney filing a case should complete the form as follows:

I.(a) Plaintiffs-Defendants. Enter names (last, first, middle initial) of plaintiff and defendant. If the plaintiff or defendant is a government agency, use
only the full name or standard abbreviations. If the plaintiff or defendant is an official within a government agency, identify first the agency and
then the official, giving both name and title.
(b) County of Residence. For each civil case filed, except U.S. plaintiff cases, enter the name of the county where the first listed plaintiff resides at the
time of filing. In U.S. plaintiff cases, enter the name of the county in which the first listed defendant resides at the time of filing. (NOTE: In land
condemnation cases, the county of residence of the "defendant" is the location of the tract of land involved.)
(c) Attorneys. Enter the firm name, address, telephone number, and attorney of record. If there are several attorneys, list them on an attachment, noting
in this section "(see attachment)".

II. Jurisdiction. The basis of jurisdiction is set forth under Rule 8(a), F.R.Cv.P., which requires that jurisdictions be shown in pleadings. Place an "X"
in one of the boxes. If there is more than one basis of jurisdiction, precedence is given in the order shown below.
United States plaintiff. (1) Jurisdiction based on 28 U.S.C. 1345 and 1348. Suits by agencies and officers of the United States are included here.
United States defendant. (2) When the plaintiff is suing the United States, its officers or agencies, place an "X" in this box.
Federal question. (3) This refers to suits under 28 U.S.C. 1331, where jurisdiction arises under the Constitution of the United States, an amendment
to the Constitution, an act of Congress or a treaty of the United States. In cases where the U.S. is a party, the U.S. plaintiff or defendant code takes
precedence, and box 1 or 2 should be marked.
Diversity of citizenship. (4) This refers to suits under 28 U.S.C. 1332, where parties are citizens of different states. When Box 4 is checked, the
citizenship of the different parties must be checked. (See Section III below; NOTE: federal question actions take precedence over diversity
cases.)

III. Residence (citizenship) of Principal Parties. This section of the JS 44 is to be completed if diversity of citizenship was indicated above. Mark this
section for each principal party.

IV. Nature of Suit. Place an "X" in the appropriate box. If the nature of suit cannot be determined, be sure the cause of action, in Section VI below, is
sufficient to enable the deputy clerk or the statistical clerk(s) in the Administrative Office to determine the nature of suit. If the cause fits more than
one nature of suit, select the most definitive.

V. Origin. Place an "X" in one of the six boxes.


Original Proceedings. (1) Cases which originate in the United States district courts.
Removed from State Court. (2) Proceedings initiated in state courts may be removed to the district courts under Title 28 U.S.C., Section 1441.
When the petition for removal is granted, check this box.
Remanded from Appellate Court. (3) Check this box for cases remanded to the district court for further action. Use the date of remand as the filing
date.
Reinstated or Reopened. (4) Check this box for cases reinstated or reopened in the district court. Use the reopening date as the filing date.
Transferred from Another District. (5) For cases transferred under Title 28 U.S.C. Section 1404(a). Do not use this for within district transfers or
multidistrict litigation transfers.
Multidistrict Litigation. (6) Check this box when a multidistrict case is transferred into the district under authority of Title 28 U.S.C. Section 1407.
When this box is checked, do not check (5) above.

VI. Cause of Action. Report the civil statute directly related to the cause of action and give a brief description of the cause. Do not cite jurisdictional
statutes unless diversity. Example: U.S. Civil Statute: 47 USC 553 Brief Description: Unauthorized reception of cable service

VII. Requested in Complaint. Class Action. Place an "X" in this box if you are filing a class action under Rule 23, F.R.Cv.P.
Demand. In this space enter the actual dollar amount being demanded or indicate other demand, such as a preliminary injunction.
Jury Demand. Check the appropriate box to indicate whether or not a jury is being demanded.

VIII. Related Cases. This section of the JS 44 is used to reference related pending cases, if any. If there are related pending cases, insert the docket
numbers and the corresponding judge names for such cases.

Date and Attorney Signature. Date and sign the civil cover sheet.
Case 2:17-cv-00571 Document 1-1 Filed 08/02/17 Page 3 of 3 PageID #: 9

JS 44 (rev. 12/12)- CONTINUED FROM JS 44

PLAINTIFF DEFENDANT

UNILOC USA, INC. and APPLE INC.


UNILOC LUXEMBOURG, S.A.

RELATED CASES
JUDGE DOCKET NUMBER
JAMES RODNEY GILSTRAP 2:16-cv-00638
JAMES RODNEY GILSTRAP 2:17-cv-00258
JAMES RODNEY GILSTRAP 2:17-cv-00454
JAMES RODNEY GILSTRAP 2:17-cv-00455
JAMES RODNEY GILSTRAP 2:17-cv-00457
JAMES RODNEY GILSTRAP 2:17-cv-00469
JAMES RODNEY GILSTRAP 2:17-cv-00470
JAMES RODNEY GILSTRAP 2:17-cv-00522
JAMES RODNEY GILSTRAP 2:17-cv-00534
JAMES RODNEY GILSTRAP 2:17-cv-00535
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 1 of 16 PageID #: 10

EXHIBIT A
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 2 of 16 PageID #: 11

US006216158B1

(12) United States Patent (10) Patent N0.: US 6,216,158 B1


Luo et al. (45) Date of Patent: Apr. 10, 2001

(54) SYSTEM AND METHOD USINGA PALM 5,923,885 * 7/1999 Johnson et al. .................... .. 395/712
SIZED COMPUTER TO CONTROL 5,964,836 * 10/1999 Rowe etal. . 709/221
NETWORK DEVICES 5,973,696 * 10/1999 Agranat et al. .................... .. 345/357
_ _ OTHER PUBLICATIONS
(75) Inventors: WenJun Luo, Fremont; Elaine P.
Lusher, Pleasanton, both of CA (US) M.G. Lamming, Institute for Personalized Information
Environment 1994 Towards Future Personalised Informa
(73) Assignee: 3COM Corporation, Santa Clara, CA tion Environments Technical Report EPC1994104,
(US) Dec. 21, 1993.
McCandless, Michael, The PalmPiolt and the Handhled
(*) Notice: Subject to any disclaimer, the term of this Revolution, IEEE Expert, Nov/Dec, 1997, pp_ 6_8_
patent is extended or adjusted under 35
U.S.C. 154(b) by 0 days. * Cited by examiner
Primary ExaminerViet D. Vu
(21) Appl. No.: 09/237,609 (74) Attorney, Agent, or FirmMark A. Haynes; Haynes &
_ Beffel LLP
(22) Filed: Jan. 25, 1999
(57) ABSTRACT
(51) Int. Cl.7 .................................................... .. G06F 13/00
(52) US. Cl. ........................ .. 709/217; 709/219; 709/225; Controlling network services using palm Sized Computers is
709/313; 709/329 described. Aprogram on the palm sized computer is used to
(58) Field of Search ................................... .. 709/202, 203, access a registry of network services that may be available
709/217, 219, 223, 225, 230, 250, 313, The registry includes descriptions for various services. Each
319, 328, 329 description includes at least a reference to program code that
can be downloaded to the palm siZed computer. Executing
(56) References Cited this program causes the palm siZed computer to issue
commands directly to the speci?c network services needed.
U~S~ PATENT DOCUMENTS In some cases, these network services include application
5 564 070 * 10/1996 Want et al. ........................ .. 455/507 Services for running desktop applications that the Palm SiZCd
5,790,977 * 8/1998 Ezekiel .... .. 702/122 Computer Could not @Xecuta
5,832,506 * 11/1998 Kuzma ........ .. 707/200
5,909,545 * 6/1999 Frese 11 et al. .. 709/208 20 Claims, 7 Drawing Sheets

4, Control
3. Download Application Service
Porverlointlontrd I
-
Name;
llySlrdeShorr
120
a e lookup_Service

Palm Sized Computer 2' Lookup

My Slide
Show

140 Display Service


Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 3 of 16 PageID #: 12

U.S. Patent Apr. 10, 2001 Sheet 1 0f 7 US 6,216,158 B1

4. Control
3. Download Application Service

up
Lockup Service

Palm Sized Computer 2' Lookup

140 Display Service

FlG.1
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 4 of 16 PageID #: 13
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 5 of 16 PageID #: 14
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 6 of 16 PageID #: 15

U.S. Patent Apr. 10, 2001 Sheet 4 0f 7 US 6,216,158 B1

go Control Application
lo CPU Service
Middleware Protocol Layer

PowerPoint Control Protocol Manager


/, K
PowerPoint Control
CPowerPoint

go Storage Service tag Projector Service


Middleware Protocol layer Middleware Protocol Layer
A
t ,
LDAP front end Projector control front end
t i
Backend LDAP Database Projector Control
CLdapDb CProiector

FIG. 4
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 7 of 16 PageID #: 16

U.S. Patent Apr. 10, 2001 Sheet 5 0f 7 US 6,216,158 B1

Obiect Class Hierarchy

PowerPoint

----------- ~

----- -

FIG. 5
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 8 of 16 PageID #: 17

U.S. Patent Apr. 10, 2001 Sheet 6 0f 7 US 6,216,158 B1

Obiect Class Hierarchy for Network Services

Service

Network Service

Application Operating System Storage Projection Service Location


Service Service Service Service Service

Slide Presentation Speech Recognition Groupware Email


Service Service Service Service

Object Class

Fl 6.6
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 9 of 16 PageID #: 18

U.S. Patent Apr. 10, 2001 Sheet 7 of 7 US 6,216,158 B1

Object Class Hierarchy for Application Services

Application
Service

.Slide Presentation Speech Recognition Groupware I Email


Service Service Service Service
I

Naturally AltaVista Eudora Microsoft


Speaking Forum Mail Mail

Netscape
Mail

Object Instance
ObjectClass

FIG. 7
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 10 of 16 PageID #: 19

US 6,216,158 B1
1 2
SYSTEM AND METHOD USING A PALM FIG. 7 illustrates an example class hierarchy for applica
SIZED COMPUTER TO CONTROL tion services that can be provided in the system of FIG. 1.
NETWORK DEVICES
DETAILED DESCRIPTION
BACKGROUND OF THE INVENTION A. System OvervieW
A palm siZed computer can serve as a netWork portal to
1. Field of the Invention
usher in a neW generation of mobile computing. Palm siZed
This invention relates to the ?eld of networked computer. computers are the ideal next generation computing device in
In particular, the invention relates to a system and method to that they are inherently mobile and have the lightWeight
control netWork devices using a palm siZed, or otherWise form factor necessary for mobile computing. The fundamen
reduced functionality, computer. tal obstacle to palm siZed computers as the next generation
2. Description of the Related Art computing device can be removed by vieWing the netWork
Palm siZed computers, also referred to as Personal Digital as an extension of the palm siZed computers resources.
Assistants (PDAs), are portable devices Which perform an Functions can be doWnloaded into the device as needed, and
array of personal management tasks such as calendar man 15 overlaid after they have been used. This alloWs the palm
agement and address book storage. The adoption of palm siZed computer to adapt to a changing environment (as the
siZed computers has been rapid. Some palm siZed computers mobile users location changes) and to access exactly the set
are able to interface With conventional computing devices, of services it needs. These services are stored on the netWork
such as PCs, on an as-needed basis. For example, palm siZed and can be used at Will. Many of these services may never
computers such as 3Coms Palm PlatformTM computers can reside on the device and are more suitable for execution by
upload personal appointments to a PC-based calendar. a conventional computer. HoWever, they are accessible and
Palm siZed computers generally have the folloWing char can be controlled via a lightWeight computing device, such
acteristics. Relative to desktop and laptop computers, palm as a palm siZed computer.
siZed computers have limited processing, display and input B. Building Blocks of NetWork-Enabled Palm SiZed Com
capabilities. As a result of these limitations, palm siZed 25 puters
computers do not run the same applications as desktop or The building blocks for lightWeight mobile computing
laptop computers. Other limitations of palm siZed computers include a palm siZed computer, a compute/memory/storage
include limited battery life and loWer bandWidth communi intensive device(s), and a netWork.
cations With other devices. MiddleWare alloWs palm siZed computers to discover
netWork-based computing resources. Once discovered, this
One big advantage of palm siZed computers is their middleWare provides a mechanism for the palm siZed com
portability. Therefore, it is desirable to be able to access puter to use these resources. This middleWare typically
desktop functionality from palm siZed computers. includes a directory of resources (or services), a protocol for
SUMMARY OF THE INVENTION storing and retrieving from the directory, and mechanisms to
35 transfer softWare from the directory to a palm siZed com
Controlling netWork services using palm siZed computers puter.
is described. Aprogram on the palm siZed computer is used Control applications reside on a lightWeight computing
to access a registry of netWork services that may be avail device, such as a palm siZed computer, but manipulate
able. The registry includes descriptions for various services. computing services on the netWork. Control applications
Each description includes at least a reference to program assume the use of middleWare, such as Sun Microsystems
code that can be doWnloaded to the palm siZed computer. Jini, for access to netWork-based resources. (Note in some
Executing this program causes the palm siZed computer to embodiments, the control application is distributed betWeen
issue commands directly to the speci?c netWork services the palm siZed computer and a control proxy server.)
needed. In some cases, these netWork services include Example Registry and Control Infrastructure: Jini
application services for running desktop applications that the 45 JiniTM is a technology developed by Sun Microsystems
palm siZed computer could not execute. Which addresses the problem of computing and netWork
In some embodiments, the device executing the netWork complexity. It eases the burden of accessing services by
services and the palm siZed computer are executing middle providing seamless access and automatic registration of
Ware applications for communicating With the registry. In netWork resources. Jini accomplishes this by adopting a
some embodiments, this middleWare includes Jini technol model in Which devices announce their presence and capa
ogy from Sun Microsystems. Additionally, the programs bilities to the netWork, and access the same type of infor
doWnloaded can include Java program code. mation in order to locate services they Wish to use.
The Jini approach relies on Java and a Jini registry (i.e.
BRIEF DESCRIPTION OF THE FIGURES database of services) as the underlying infrastructure. Each
FIG. 1 illustrates a system having a palm siZed computer 55 device is expected to run a Java Virtual Machine (JVM), or
controlling operations of various netWork devices. rely on a Jini proxy Which runs a JVM on the devices
FIG. 2 illustrates a softWare architecture for use in the
behalf. Key to Java is the idea that softWare (as Well as data)
can be dynamically doWnloaded to a device. The Java model
system of FIG. 1.
assumes a distributed, netWork-centric model in Which the
FIG. 3 illustrates an example architecture for controlling behavior of a device can be dynamically altered to accom
a PoWerPoint presentation. modate changing conditions.
FIG. 4 illustrates a detailed softWare architecture for the Jini eases netWork connectivity problems. Jini acts as
example of FIG. 3. middleWare to access netWork resources, as it lets devices
FIG. 5 illustrates a class hierarchy that can be used in the locate services and doWnload softWare for those services.
example of FIG. 3. 65 Other middleWare could be substituted for J ini if it provides
FIG. 6 illustrates an example class hierarchy for netWork discovery and softWare doWnload for netWork-based ser
services that can be provided in the system of FIG. 1. vices.
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 11 of 16 PageID #: 20

US 6,216,158 B1
3 4
C. De?nitions In this example, all the devices can communicate on the
Acontrol device is a device which runs Jini (or some other network 110, however, they need not all be connected to the
discovery and software download technology) and is network in the same way.
capable of accessing a wide range of network-centric Functionally, the devices play the following roles:
services, including services which are incapable of running palm siZed computer 100: the remote control device
on the control device. The control device is the access device
for a wide class of computing services otherwise inacces application services: a set of resources and services, such
sible to devices with restricted computing power. 3Coms as compute power and applications
palm siZed computer, the Palm Computing platform, is an network 110: the physical medium which connects
example of such a control device. Windows CE compatible devices and services
10
devices may also be used. lookup service 120: a database of network services
A control application is as an application that relies on E. Architecture
resources located off of the control device (eg on a As noted above, the palm siZed computer 100 functions as
network), but uses a control device to initiate and control the the remote control device for the PowerPoint presentation. It
application. The resources are accessed and controlled, but 15 is a multi-function control device in that it can control a host
not resident, on the control device. Examples of such of resources accessible via the network. The palm siZed
compute/memory-intensive services include PowerPoint computer 100 accomplishes this via middleware (e.g. Jini)
slide presentations and speech recognition systems. These and a generic control protocol capable of issuing control
services can be both invoked and controlled via a control commands to an offboard resource. The palm siZed com
device. puter 100 implements this control via the software compo
Network-based services can be used by any control nents depicted in FIG. 2. These software components rep
device. Services offer a discrete task to the control device. resent a generic architecture for control of any network
This contrasts with a traditional model in which devices, based resource using a reduced functionality computer such
such as a PC, house the entirety of resources a control device as a palm siZed computer. The software architecture,
might utiliZe. Services are ?ne-grained and represent a middleware, and control protocol implement a new model
25
distributed set of capabilities residing on a network. Services for lightweight mobile computing. This model of light
may or may not be co-located with other services on the weight mobile computing is particularly well-served by
same physical device. Services are offered (via a network devices such as a palm siZed computer, as they possess the
and a Directory of Services, such as the Jini Lookup) in as requisite siZe and portability.
small a unit as is justi?able given the application tasks users In FIG. 2, the control device 200 is able to control services
will typically want to accomplish. Fine-grained services can on the network 110, such as the network based service 250.
be used by a variety of consumers who need precisely that The directory of services 220 provides the registry functions
function. The model that emerges is a network-based model used to enable the system.
that offers a wide range of narrowly-de?ned computing The control device 200 includes a control device operat
services of interest to a wide range of applications. Services ing system 201 which supports a network communications
35
will be physically distributed across devices but accessible program 202 and a control application 210. The network
via a central repository (e.g. database) of services. This communications program 202 allows the control device 200
model of distributed computing is inherently scalable in that to communicate with other devices on the network. The
the set of services offered via the network grows seamlessly control application 210 includes the following elements:
as devices plug in and announce their capabilities. a GUI 212 to display the available network-based services
D. An Example of the Control Application and accept user input
To help illustrate the use of a control device and a control an application control protocol manager 214 which inter
application, a PowerPoint slide presentation control is faces between the control device 200 and the network
described herein. (FIG. 1 illustrates a generaliZed view of based computer service 250 by requesting tasks from
such an example.) In this example, a palm siZed computer 45 that service (eg slide manipulation). This module is
100 accesses network 110 resources (via a Directory of responsible for generating the application control pro
Services, such as the lookup service 120) to locate the tocol to command the selected service,
elements it requires to remotely control a presentation a middleware protocol manager 216 to transfer data
located on the network. The palm siZed computer 100 uses between the control device 200 and the directory of
three services to function as a control device to display a services 220 (eg communication between Palm plat
PowerPoint presentation: form and the Jini Lookup). This module is responsible
an application service 130 (to run PowerPoint) for generating the syntax necessary to communicate
a persistent storage service 150 (to store the presentation) based on the type of middleware being used.
a display service 140 (to display the presentation images) The service device operating system 251 includes a
Each of these services will have registered with the 55 service device communications program 252 and a service
lookup service 100. A service in this example, is tied to control application 260. The service device communications
different hardware devices. However, this is not required. program 252 is responsible for communicating with the
Storage, processing, and/or display could be supported by network 110. The service control application 260 includes
one or more computer systems. the following components:
None of these services are resident on the palm siZed a service application control protocol manager 262 that
computer 100. Once the palm siZed computer 100 has interfaces between the network based computer service
located the necessary services, it downloads the code 250 and the control device 200 and accepts control
required to control those services (using the lookup and tasks (eg slide manipulation) issued from the control
download protocols). Middleware, such as Suns Java/Jini device 200. This module is capable of sending back a
technology, is used to move the code. 65 response (e.g. status) to the control device 200,
The palm siZed computer 100 is then capable of directly a middleware protocol manager 266 to transfer data
controlling the services it requires. between the network based computer service 250 and
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 12 of 16 PageID #: 21

US 6,216,158 B1
5 6
the directory service (eg communication between the 8. Via the service control GUI 212, accept user input, such
application service 130 and the Jini Lookup). This as the selection of an application (for example, a PoWer
module is responsible for generating the syntax used to Point application) to be controlled.
communicate based on the type of middleWare being 9. Optionally register the control device 200 With the direc
used. tory service via a registration protocol, such as the Jini
an application 268 to perform functions on the netWork. Discovery Protocol. This step is the same as the above one
The application 268 can be a desktop application that for the other services. It is executed only if the control
Would not execute on a palm siZed computer. device 200 has resources to offer.
Returning to the speci?c example of the PoWerPoint 10. Search the directory service 220 and doWnload the
presentation, FIG. 3 illustrates the architecture that could be 10
desired service descriptor. In the case of Jini, after the
used to implement such a system. In FIG. 3, the control control device 200 receives the response from the direc
device 200 has been replaced With a palm siZed computer tory service 220, it uses the included interface to search
100 executing the Palm OS 301. The GUI 212 is speci?cally the directory service 220 for an application service using
for PoWerPoint control (see FIG. 1 for an example of such the object type representing the service (such as an object
a GUI). The Java Virtual Machine 318 is executing on the type of PoWerPoint presentation service) and the desired
15 service attributes (such as the name and the physical
palm siZed computer 100 and replaces the middleWare 218.
The middleWare protocol manager 216 supports Jini location of the service). Once the directory service 220
discovery, lookup and doWnload protocols. PoWerPoint con ?nds such a service entry, the control device 200 is
trol commands are issued to the netWork based computer noti?ed, Which in turn uses the doWnloading interface to
service 250. The PoWerPoint control protocol manager 364 doWnload the application service descriptor. One example
provides the interface for these commands and controls the of these services is the GUI code for controlling a
PoWerPoint application 368. PoWerPoint presentation.
F. Control FloW 11. Send requests from the control device 200 to the netWork
The process for accessing and controlling netWork-based based computer service 250 to control the desired appli
services is described beloW. The speci?c implementation cation. For example, a next slide request could be sent
control of a PoWerPoint Service via a 3Com Palm Comput 25 from a palm siZed computer 100 to an application service
ing platform is used as an example. Refer to FIG. 1. 130 running PoWerPoint. The communication can be
1. Con?gure a computer hosting the directory of services based on a protocol such as the folloWing one:
220 and connect it to the netWork 110. For instance, a Jini
lookup service is con?gured to listen at a preset TCP, or
UDP, port for service registration or service lookup Control Type Application File Name Control Function
requests.
2. Establish a netWork connection from the netWork based
computer service 250 to the netWork 110. Where:
3. Register the computing service With a directory of ser Control Type={Request, Reply}
vices 220. For example, in the Jini model, the computing 35 Application={PoWerPoint, FAX, Print, Email,
service initially sends out a multicast packet announcing Phonebook, . . . }
its presence on the netWork. Once the directory service File Name={3ComPalmVIISpeci?cation}
220 receives the packet, it sends a unicast packet back to Control function={File Load, Slide ForWard, Slide
the announcer. The packet includes an interface (e.g. Java BackWard, File Close, . . . }
code) for uploading code back to the directory service 220 Alternatively, techniques such as J avas Remote Method
as Well as for searching and doWnloading code from the Invocation (RMI) can be used to achieve the same goal. In
directory service 220. this case, the control device makes a local function call such
4. Upload service description to the directory service 220. If as doForWardSlide( The RMI mechanism Will transfer the
Jini is adopted as the middleWare, the application service call to a remote machine Which implements and carries out
130 receives the response from the directory service 220 45 the function call. The PoWerPoint presentation service may
and uses the included interface to upload its service in turn use other services such as the storage service 150 and
interface to the directory service 220. When the service the display service 140. The procedure to employ these
interface is called, it contacts the directory service 220 services is similar to steps 1011 above.
Which in turn creates an entry (represented by an object) 12. Accept any response to requests sent from the control
for this neW service and sets the proper ?elds such as device 200 to the netWork based computer server 250 and
service name, attributes and optionally the corresponding process any errors.
service interface. Other middleWare may choose to use G. Control Device GUI
protocol-based approaches such as FTP or TFTP for the An important element of the control application 210 is a
uploading process. GUI front-end Which accepts user input for controlling the
5. Register the storage service 150 and display service 140 55 PoWerPoint presentation (or other application) and a control
via the same process. protocol manager backend Which takes user input and trans
6. Establish a netWork connection from the control device lates it into commands to the CPU service. An example GUI
200 to the netWork 110. For Palm computers, there are is depicted in FIG. 1. The example GUI alloWs the user to
multiple options for netWork connectivity. Possible solu click on forWard, backWard, go-to-?rst-page or go
tions include using the infrared (IR) port to talk to a to-last-page buttons to control the slide shoW. The user can
IR-LAN bridge or router, using the serial port to talk to a also click a get-list button to get a full list of the slide titles
serial-to-LAN bridge or router, using either the IR or the in the current presentation and choose to go to a particular
serial port to talk to a digital cell phone and dial up a slide. By clicking the scribble button, the WindoW
modem server, and/or using Wireless data communica sWitches to graphics mode. In this mode, the user can draW
tions. 65 at random on the panel, and the result of the draWing Will be
7. Launch the service control graphical user interface (GUI) sent to the CPU service and eventually displayed on the
212 on the control device 200. projection service.
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 13 of 16 PageID #: 22

US 6,216,158 B1
7
As explained in the software How section, there are
multiple ways to implement the application control protocol
manager 214, the following illustrates one approach. The
Property/Method Name Type Description
protocol takes the following form:
PowerPoint

Presentations Collection List of open presentations


Control Type Application File Name Control Function Presentation

Slides Collection Array of slides in presentation


10 Location Storage Location where presentation loaded
Where: from
Control Type={Request, Reply} View Projector Projector where presentation is
viewed
Application={PowerPoint, FAX, Print, Email, Slide
Phonebook, . . . }
File Name={3ComPalmVIISpeci?cation} 15 Title String Title for the slide
AddComments Method Add given comments to slide at
Control function ={File Load, Slide Forward, Slide given coordinates
Backward, File Close,. . . . }
AddScribble Method Add given graphics to slide at
given coordinates
When the user clicks any button or draws something on Storage
the GUI, the application control protocol manager 214
generates the corresponding ?eld in the protocol and sends Host String LDAP Server host where the
presentation stored
a command to the network based computer service 250 via FileName String File name and other details for
a TCP/IP channel. presentation
Projector
H. Service Control Application Design
25 Host String Projector host where slides shown
FIG. 4 illustrates a detailed software architecture for the
ShowSlide Method Show slide image on projector
service control application of FIG. 3. The architecture
includes three main elements: a CPU service 410
(corresponding to the application service 130), a storage
service 420 (corresponding to the storage service 150) and LDAP Database Control
a projector service 430 (corresponding to the display service
140). Each of the elements include middleware protocol The LDAP database control provides ?le system services
layer management modules. Each module has a correspond to store and retrieve presentations. This control gets com
ing service application control module (e.g., PowerPoint mands from the PowerPoint control through the LDAP
35 protocol, to search for presentations and return presenta
Control Protocol Manager). To control speci?c network
services, instances of those services are instantiated and are tions.
used by the corresponding control protocol manager. The
following describes examples of such classes that can be An object class hierarchy for CLdapDB could include
instantiated for speci?c network services. CLdapDb having to a speci?c storage system reference.
PowerPoint Control
The PowerPoint control, through OLE automation,
instantiates and controls an instance of PowerPoint applica Storage
tion. The PowerPoint control also communicates with the 45 Property/Method Name Type Description
storage service 420 to store/retrieve presentations and the
projector service 430 to view slides. FileFilter String File ?lter used to get ?le list
FileList Collection List of ?les found on
The PowerPoint control has the ability to have many storage
presentations open at the same time and is capable of
switching between presentations. A presentation has a col
lection of slides in it. Once open, the PowerPoint control
Projector Control
allows easy traversal of the slides either by commands like
previous, neXt slide or by direct access (e.g. slide number or
slide title). When any change in slide position occurs, the
The projector control provides image viewing services
55 and has a simple image viewer that shows the image on a
PowerPoint application automatically generates the image
projection screen, monitor, display device or canvas. The
that needs to be shown by the projector control and invokes
control gets commands from the PowerPoint control.
the method on the projector control to show the changed Speci?cally, to display images, the projector control could
slide. cause frames generated by the PowerPoint control to be
Once a presentation is open, the PowerPoint control can displayed at the device controlled by the projector control.
have facilities such as Add Comments and Add Scribbled Other embodiments use more sophisticated techniques for
Graphics to the current slide. Additionally, it can allow the displaying the PowerPoint information (e.g., support win
adding of new slides to the presentation. dowing system API calls that an application may make).
FIG. 5 illustrates an eXample object class hierarchy for the 65
PowerPoint control class. The following describes the ele An object class hierarchy for CProjector could include
ments of FIG. 5 in more detail. CProjector having to a speci?c image view reference.
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 14 of 16 PageID #: 23

US 6,216,158 B1
10
FIG. 7 illustrates a partial object class hierarchy which
models Application Services, including the PowerPoint
Application Service:
ImageView De?ne-Class SlidePresentationService
Property/Method Name Type Description Superclass: ApplicationService
De?ne-Class GroupwareService
FileName String File name to be displayed
View Method Show the image on the Superclass: ApplicationService
projector De?ne-Class EmailService
Mode Long FullScreen mode
Superclass: ApplicationService
De?ne-Class SpeechRecognitionService
I. Directory of Services Design Superclass: ApplicationService
The directory of services 220 encodes the set of services Based on this object class hierarchy, objects which rep
available on the network 110. The directory of services 220 resent network services can be de?ned. These objects are
describes the characteristics of these services and provides a 15 stored in a directory of services 220, such as a Jini Lookup.
means to locate those services. To illustrate this concept, an An object to instantiate a SlidePresentationService could
object-oriented directory service is used. The directory ser look as follows:
vice will have objects whose attributes describe the features Make-Instance SlidePresentationService
of available services and optionally include either code to Name PowerPoint
invoke those services or a reference to such code. A direc
tory service will typically be one of several components Status Active
offered in the middleware a control device 200 will use. Location 3Com Intranet
FIG. 6 illustrates an object class hierarchy which models PhysicalAddress Building300.Floor2.Cube323
several network-based services. These network-based ser PhysicalMachine PowerBook G3
vices are Application Service, Operating System Service, 25 Owner Elaine Lusher
Storage Service, Projection Service, and Service Location
Service. Examples of each of these services are now given. Vendor Microsoft
De?ne-Class Service Version 98
Superclass: root CodeLocation "system/applications/of?ce/powerpoint:
Attributes: SerialNumber 169-43-4666
Name SupportedFeatures Scribble
Status Other examples of objects which represent application
De?ne-Class NetworkService services include:
Superclass: Service Make-Instance SpeechRecognitionService
Attributes: 35 Name Naturally Speaking
Location Status Active
PhysicalAddress Location 3Com Intranet
PhysicalMachine PhysicalAddress Building300.Floor2.Cube100
Owner
Vendor PhysicalMachine Solaris
Version Owner Wenjun Luo
De?ne-Class ApplicationService Vendor Dragon Systems
Superclass: NetworkService Version 4.1
Attributes: 45
CodeLocation system/applications/research/
CodeLocation dragonspeech
SerialNumber SerialNumber 157-89-4323
SupportedFeatures SupportedFeatures Dictation for Microsoft Word
De?ne-Class OperatingSystemService Make-Instance GroupwareService
Superclass: NetworkService Name Alta Vista Forum
Attributes: Status Active
RealTimeOS? Location 3Com Intranet
De?ne-Class StorageService PhysicalAddress Building300.Floor2.Cube220
Superclass: NetworkService PhysicalMachine Windows NT
55
Attributes: Owner Paul Huard
DatabaseType Vendor Microsoft
Schema
De?ne-Class ProjectionService Version 3.1
Superclass: NetworkService CodeLocation http://3Community/code/groupware/
latest
Attributes:
Resolution SerialNumber 444-56-7777
De?ne-Class ServiceLocationService SupportedFeatures Virtual Chat Room
Superclass: NetworkService Make-Instance EmailService
Attributes: Name Netscape Mail
QueryProtocol Status Active
Schema Location 3Com Intranet
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 15 of 16 PageID #: 24

US 6,216,158 B1
11 12
PhysicalAddress Building300.Floor2.Cube300 Some embodiments of the invention include only the
PhysicalMachine Solaris control device and the programs on the control device;
Owner Rick Nottingham other embodiments include some and/or all of the
programs in computer readable media, or in electro
Vendor Netscape magnetic Waveforms.
Version 5.0 K. Conclusion
CodeLocation http://3Community/code/email/latest The foregoing description of various embodiments of the
SerialNumber 456-34-6786 invention has been presented for purposes of illustration and
If middleWare resides on a proxy device (rather than on description. It is not intended to limit the invention to the
the control device 200), the control device 200 Will need to 0 precise forms disclosed. Many modi?cations and equivalent
locate such a proxy service. An Operating System Service arrangements Will be apparent.
class can encode services such as a JVM Service, a Linux What is claimed is:
Service, or a Jini proxy. 1. A method of controlling a service on a netWork using
Make-Instance OperatingSystemService a palm siZed computer, the palm siZed computer being
Name Jini Proxy 5 coupled in communications With the netWork, the method
Status Active
comprising:
accessing a description of the service from a directory of
Location 3Com Intranet services, the description of the service including at least
PhysicalAddress Building300.Floor2.Cube120 a reference to program code for controlling the service;
PhysicalMachine Solaris doWnloading the program code to the palm siZed com
OWner Rick Nottingham puter;
Vendor Sun the palm siZed computer executing at least a portion of the
Version 5.0 program code; and
RealTimeOS? no sending control commands to the service from the palm
Finally, directory services 220 (such as the Jini Lookup) siZed computer in response to the executing, Wherein
are modeled. This could be encoded in a class such as the the service controls an application that cannot be
Service Location Service. executed on the palm siZed computer.
Make-Instance ServiceLocationService 2. The method of claim 1 further comprising registering
the service in the directory of services by storing the
Name Jini Lookup description of the service in the directory of services.
Status Active 3. The method of claim 1 Wherein the directory of services
Location 3Com Intranet includes a Jini Lookup directory, Wherein the accessing the
PhysicalAddress Building300.Floor2.Cube150 description includes executing a Jini discovery protocol to
PhysicalMachine Solaris locate the Jini Lookup directory and executing a Jini Lookup
protocol to retrieve the description of the service.
OWner Rick Nottingham
4. The method of claim 1 Wherein the description of the
Vendor Sun service includes an object reference corresponding to an
Version 5.0 object representing the service and a set of service attributes
QueryProtocol Jini Lookup Protocol including the name of the service and the physical location
Schema Service Directory Schema 1.0 of the service.
J. Variations on the NetWork-based Control Application 5. The method of claim 1 Wherein the program code
Several variations of the general control paradigm can be includes Java code and Wherein the palm siZed computer is
de?ned: executing a Java Virtual Machine to execute at least a
The middleWare (Jini, in our example) may not be physi 45
portion of the program code.
cally resident on the control device 200. In this case, a 6. The method of claim 1 Wherein the program code
proxy is used Which runs middleWare on behalf of the includes code to implement a graphical user interface on the
control device 200. Functionally speaking, the same palm siZed computer.
design Will still apply. One change to the design can be 7. The method of claim 1 Wherein the application includes
used to support a modi?ed GUI for the control device. 50 a desktop program.
In these embodiments, the GUI program is modi?ed by 8. Amethod of controlling a program on a netWork device
the proxy device to account for speci?c limitations of from a palm siZed computer, the computer is not capable of
the control device. Also, in some embodiments, the executing the program by itself, the netWork device and
control device may include preset applications that computer being coupled in communications via a netWork,
interface directly With the proxy device. Such an archi 55
the method comprising:
tecture Would support a limited set of netWork services accessing a directory of services, a service in the directory
but Would likely result in very small and lightWeight of services corresponding to the program, the descrip
applications on the control device. tion of the service including at least a reference to
The control paradigm is not limited to palm siZed com program code for controlling the service;
puters. Any computing device With restricted comput 60 loading the program code;
ing poWer could be used as a control device 200 for any issuing control commands to the netWork device using the
netWork-based resource. SWitches, hubs, routers, and program code, the control commands causing the net
other netWorking devices are candidates for a control Work device to control the program.
device 200. The netWork-based resources they use 9. The method of claim 8, Wherein loading the program
could include any service that cannot physically reside code includes loading the program code onto the palm siZed
on the netWorking device due to restrictions such as computer and the issuing the control commands includes the
limited memory. palm siZed computer issuing the control commands.
Case 2:17-cv-00571 Document 1-2 Filed 08/02/17 Page 16 of 16 PageID #: 25

US 6,216,158 B1
13 14
10. The method of claim 8, wherein a proxy device is program being loaded onto the control device as a
coupled to the network and wherein accessing the directory result of locating a reference to the network based
of services includes the palm siZed computer accessing the computer service in the directory of services;
proxy device, and the proxy device accessing the directory a network coupled in communications with the network
of services, and wherein the loading the program code based computer service, the directory of services and
includes loading the program code onto the proxy device, the control device;
and wherein the issuing the control commands includes the
palm siZed computer issuing a set of ?rst set of commands wherein the control device includes a palm siZed com
to the proxy device and the proxy device issuing the control puter having an operating system, a network commu
commands. nications program, a protocol program for communi
11. The method of claim 10, wherein the program code cating with the directory of services and wherein the
includes a user interface program and wherein the proxy program includes a graphical user interface.
device receives the user interface program and generates a 18. The method of claim 17 wherein the network based
second user interface for the palm siZed computer. computer service includes a computer having an operating
12. The method of claim 8 wherein loading the program 15 system, a network communications program, a protocol
code includes loading the program code onto the palm siZed program for communicating with the directory of services
computer from the directory of services. and the application.
13. The method of claim 8, wherein the palm siZed 19. A method for controlling a service in a network using
computer includes a Palm OS compatible computer, wherein a palm siZed computer, the method comprising:
the program code includes Java code and wherein the accessing a description of a service, the description of the
directory of services includes a Jini directory of services. service including at least a reference to program code
14. The method of claim 8 further comprising the network for controlling the service;
device registering the description of the service with the downloading the program code;
directory of services.
15. The method of claim 8 wherein the program includes 25
executing at least a portion of the program code; and
a desktop program. sending control commands to the service in response to
16. The method of claim 8 wherein the program includes the executing, wherein the service includes a CPU
a desktop program and wherein the services controlled service.
include a CPU service for executing the program, a storage 20. A system comprising:
service for providing data to the CPU service and a display means for accessing a description of a service, the
service for displaying information generated from the CPU description of the service including at least a reference
service. to program code for controlling a service;
17. A system for controlling a network service compris means for downloading the program code;
ing: means for executing at least a portion of the program
a network based computer service for controlling an 35
code; and
application that cannot exectuted by a control device; means for sending control commands to the service in
a directory of services including a registry of services, response to the means for executing, wherein the ser
each service in the registry of services corresponding to vice controls an application that cannot be executed on
a service on the network; the means for executing.
the control device having a program for sending control
commands to the network based computer service, the * * * * *

You might also like