Free Complaint - District Court of California - California


File Size: 12,706.2 kB
Pages: 286
Date: September 6, 2008
File Format: PDF
State: California
Category: District Court of California
Author: unknown
Word Count: 10,527 Words, 65,538 Characters
Page Size: 612 x 790.8 pts
URL

https://www.findforms.com/pdf_files/cand/204146/1.pdf

Download Complaint - District Court of California ( 12,706.2 kB)


Preview Complaint - District Court of California
Case 5:08-cv-02363-JW

Document 1

Filed 05/07/2008

Page 1 of 12

MATTHEW D. POWERS (Bar No. 104795) [email protected] EDWARD R. REINES (Bar No. 135960) [email protected] DOUGLAS E. LUMISH (Bar No. 183863) [email protected] THOMAS B. KING (Bar No. 241661) [email protected] WEIL, GOTSHAL & MANGES LLP 201 Redwood Shores Parkway Redwood Shores, CA 94065 Telephone: (650) 802-3000 Facsimile: (650) 802-3 100 DEBORAH K. MILLER (Bar No. 95527) [email protected] MATTHEW M. SARBORARIA (Bar No. 2 11600) [email protected] ORACLE CORPORATION 500 Oracle Parkway Redwood City, C A 94065 Telephone: (650) 506-5200 Facsimile: (650) 506-7 114
I

1

..

,-'

:>J

-1

ORIGINAL
FkED
/ A
'7 fhwJ$
N~RTHCRN I B ~ I I I ~ Te&W ~ I A D
RIOMARD W. WIIIKINQ CLEAR- &I:ยง: DI@TWIOT URP tj

Attorneys for Plaintiffs ORACLE CORPORATION, ORACLE USA, INC., ORACLE INTERNATIONAL CORPORATION, AND SIEBEL SYSTEMS, INC. UNITED STATES DISTRICT COURT NORTHERN DISTRICT OF CALIFORMA ORACLE CORPORATION, ORACLE USA, INC., ORACLE INTERNATIONAL CORPORATION, AND SlEBEL SYSTEMS, INC., Plaintiffs,

Case No.
COMPLAINT

DEMAND FOR JURY TRIAL ALCATEL LUCENT, ALCATEL-LUCENT HOLDINGS INC., ALCATEL USA INC., ALCATEL USA MARKETING INC., ALCATEL USA RESOURCES INC., ALCATEL USA SOURCING INC., LUCENT TECHNOLOGIES INC., AND GEWSYS TELECOMMUNICATIONS LABORATORIES INC., Defendants.

I
Case No.

COMPLAINT DEMAND FOR JURY TRIAL

Case 5:08-cv-02363-JW

Document 1

Filed 05/07/2008

Page 2 of 12

Plaintiffs Oracle Corporation, Oracle USA, Inc., Oracle International Corporation, and Siebel Systems, Inc. (collectively "Oracle"), by and through their attorneys bring this action against Alcatel Lucent, Alcatel-Lucent Holdings Inc., Alcatel USA Inc., Alcatel USA Marketing Inc., Alcatel USA Resources Inc., Alcatel USA Sourcing Inc., Lucent Technologies Inc., and Genesys Telecommunications Laboratories Inc. (collectively "the Alcatel Defendants") as follows: 1. This is a civil action arising under the Patent Laws of the United States, 35

U.S.C. $$101, et seq., seeking judgment that United States Patent Nos. 7,188,183, 6,661,877, 6,493,695, 7,171,190, 7,039,176, and 7,136,448 (collectively the "Oracle Patents") are infringed by the Alcatel Defendants. 2. This action further seeks a declaratory judgment that United States Patent

Nos. 5,418,943, 6,272,502, 6,205,449, 6,502,133, 5,659,725, '5,649,068, and 6,732,156 (collectively the "Alcatel Lucent Patents"), which are allegedly owned by the Alcatel Defendants, are invalid and not infringed by Oracle based upon the laws authorizing actions for declaratory judgment in the courts of the United States, 28 U.S.C.

$5 2201 and 2202.

PARTIES
3. Oracle Corporation is a corporation organized under the laws of the State

of Delaware. Oracle Corporation maintains its principal place of business at 500 Oracle Parkway, Redwood City, California, 94065, and does business in the Northern District of California. 4. Oracle USA, Inc. is a corporation organized under the laws of the State of

Colorado. Oracle USA, Inc. maintains its principal place of business at 500 Oracle Parkway, Redwood City, California, 94065, and does business in the Northern District of California. 5. Oracle International Corporation is a corporation organized under the laws

of the State of California. Oracle International Corporation maintains its principal place of business at 500 Oracle Parkway, Redwood City, Califomia, 94065, and does business in the Northern District of California. 6. of Delaware. Siebel Systems, Inc. is a corporation organized under the laws of the State

Siebel Systems, Inc. maintains its principal place of business at 500 Oracle 1
Case No.

COMPLAINT DEMAND FOR JURY TRIAL

Case 5:08-cv-02363-JW

Document 1

Filed 05/07/2008

Page 3 of 12

Parkway, Redwood City, California, 94065, and does business in the Northern District of California. 7. Upon information and belief, ~efendantAlcatel Lucent is a French

company with headquarters at 54, rue La Boetie, 75008 Paris, France. Alcatel Lucent maintains executive offices in the United States at 600 Mountain Road, Murray Hill, New Jersey 07974. 8. Upon information and belief, Defendant Alcatel-Lucent Holdings Inc. is a

corporation organized under the laws of the State of Delaware. Alcatel-Lucent Holdings Inc. maintains its principal place of business at 3400 W. Plano Parkway, Plano, Texas 75075. AlcatelLucent Holdings Inc. is wholly owned by and is an agent of Alcatel Lucent. 9. Upon information and belief, Alcatel USA Inc. is a corporation organized

under the laws of the State of Delaware. Alcatel-Lucent Holdings Inc. maintains its principal place of business at 3400 W. Plano Parkway, Plano, Texas 75075. Alcatel USA Inc. is wholly owned by and is an agent of Alcatel Lucent. 10. Upon information and belief, Defendant Alcatel USA Marketing Inc. is a

corporation organized under the laws of the State of Delaware. Alcatel USA Marketing Inc. maintains its principal place of business at 3400 W. Plano Parkway, Plano, Texas 75075. Alcatel USA Marketing Inc. is wholly owned by and is an agent of Alcatel Lucent. 11. Upon information and belief, Defendant Alcatel USA Resources Inc. is a

corporation organized under the laws of the State of Delaware. Alcatel USA Resources Inc. maintains its principal place of business at 3400 W. Plano Parkway, Plano, Texas 75075. Alcatel USA Resources Inc. is wholly owned by and is an agent of Alcatel Lucent. 12. Upon information and belief, Defendant Alcatel USA Sourcing Inc. is a

corporation organized under the laws of the State of Delaware. Alcatel USA Sourcing Inc. maintains its principal place of business at 3400 W. Plano Parkway, Plano, Texas 75075. Alcatel USA Sourcing Inc. is wholly owned by and is an agent of Alcatel Lucent. 13. Upon information and belief, Defendant Lucent Technologies Inc. is a Lucent Technologies Inc.

corporation organized under the laws of the State of Delaware.

I

COMPLAINT DEMAND FOR JURY TRIAL

Case No.

Case 5:08-cv-02363-JW

Document 1

Filed 05/07/2008

Page 4 of 12

maintains its principal place of business at 600-700 Mountain Avenue, Murray Hill, New Jersey 07974. Lucent Technologies is wholly owned by and is an agent of Alcatel Lucent. 14. Upon information and belief, Defendant Genesys Telecommunications

Laboratories Inc. is a corporation organized under the laws of the State of California. Genesys Telecommunications Laboratories Inc. maintains its principal place of business at 2001 Junipero Serra Blvd., Daly City, California 94014. Genesys Telecommunications Laboratories Inc. is wholly owned by and is an agent of Alcatel Lucent.
JURISDICTION

15.

This Court has subject matter jurisdiction over Oracle's claims of

infringement, which arise under the patent laws of the United States, pursuant to 28 U.S.C. $$ 1331 and 1338(a). 16. This Court has subject matter jurisdiction over Oracle's Declaratory

Judgment claims pursuant to 28 U.S.C. $5 2201 and 2202. 17. There is an actual controversy between the Alcatel Defendants and Oracle

with respect to the Alcatel Lucent Patents. On December 21, 2007, June M. Sulovski, Alcatel Lucent's Director of Licensing, Intellectual Property Business, wrote a letter to Oracle's Chief Executive Officer alleging that the "Oracle Database," "Oracle Data Guard (ODG Option)," "Times Ten," "Oracle Data Mining (ODM Option)," andlor "Oracle Email Center 1 Call Center" "are covered by the claims" of one or more of the Alcatel Lucent Patents. Oracle denies that it infringes any of the Alcatel Lucent Patents, and disputes their validity. Oracle further denies that it needs a license to any of the Alcatel Lucent Patents in order to continue its activities. Thus, an actual and justiciable controversy exists between Oracle and the Alcatel Defendants as to whether the Alcatel Lucent Patents are invalid and/or infringed. 18. Upon information and belief, the Alcatel Defendants are subject to personal

jurisdiction in this district arising out of their contacts with this district. In particular, the Alcatel Defendants' contacts with this district are systematic and continuous, and Oracle's claims arise out of or are related to the Alcatel Defendants' contacts with this district.

COMPLAINT DEMAND FOR JURY TRIAL

3

Case No.

Case 5:08-cv-02363-JW

Document 1

Filed 05/07/2008

Page 5 of 12

VENUE
19. Venue is proper in this district pursuant to 28 U.S.C.

$8

1391 (b)(2), (c),

(d) and/or 28 U.S.C. 1400 because, among other things, the Alcatel Defendants have committed acts of infringement of Oracle's patents within this judicial district, as set forth herein.

COUNT I
20. Oracle hereby restates and realleges the allegations set forth in paragraphs

1 through 19 above and incorporates them by reference. 21. Oracle International Corporation is the owper of all right, title, and interest

in United States Patent No. 7,188,183 entitled "Maintaining State Information In Mobile Applications" ("the '1 83 patent"), duly and legally issued on March 6, 2007. A true and correct copy of the '183 patent is attached hereto as Exhibit A. 22. The Alcatel Defendants, collectively and individually, have infringed and

continue to infringe the '183 patent including without limitation by making, using, selling, offering to sell, and/or importing within or into the United States the Alcatel Lucent OmniTouch My Messaging system, the Alcatel Lucent 5350 XML Document Management Server, and other products and/or systems practicing the claimed invention. The Alcatel Defendants are liable for infringement under 35 U.S.C. tj 271, including without limitation both direct and indirect infringement of the '183 patent.

COUNT I1
23. Oracle hereby restates and realleges the allegations set forth in paragraphs

1 through 22 above and incorporates them by reference. 24. Oracle International Corporation is the owner of all right, title, and interest

in United States Patent No. 6,661,877 entitled "System-And Method For Providing Access To A Unified Message Store Logically Storing Computer Telephony Messages" ("the '877 patent"), duly and legally issued on December 9, 2003. A true and correct copy of the '877 patent is attached hereto as Exhibit B. 25. The Alcatel Defendants, collectively and individually, have infringed and

continue to infringe the '877 patent including without limitation by making, using, selling,
COMPLAINT DEMAND FOR JURY TRIAL

4

Case No.

Case 5:08-cv-02363-JW

Document 1

Filed 05/07/2008

Page 6 of 12

offering to sell, andlor importing within or into the United States the Alcatel Lucent OmniTouch My Messaging system and other products andlor systems practicing the claimed invention. The Alcatel Defendants are liable for infringement under 35 U.S.C. $271, including without limitation both direct and indirect infringement of the '877 patent.

COUNT I11
26. Oracle hereby restates and realleges the allegations set forth in paragraphs

1 through 25 above and incorporates them by reference. 27. Oracle International Corporation is the owner of all right, title, and interest

in United States Patent No. 6,493,695 entitled "Methods And Systems For Homogeneously Routing And/or Queueing Call Center Customer Interactions Across Media Types" ("the '695 patent"), duly and legally issued on December 10, 2002. A true and correct copy of the '695 patent is attached hereto as Exhibit C. 28. The Alcatel Defendants, collectively and individually, have infringed and

continue to infringe the '695 patent including without limitation by making, using, selling, offering to sell, and/or importing within or into the United States the Alcatel Lucent OmniTouch Contact Center, the Alcatel Lucent OmniGenesys Contact Center, and other products andlor systems practicing the claimed invention. The Alcatel Defendants are liable for infringement under 35 U.S.C. '695 patent. 271, including without limitation both direct and indirect infringement of the

COUNT IV
29. Oracle hereby restates and realleges the allegations set forth in paragraphs

1 through 28 above and incorporates them by reference. 30. Oracle International Corporation is the owner of all right, title, and interest

in United States Patent No. 7,171,190 entitled "Intelligent Messaging" ("the '190 patent"), duly and legally issued on January 30, 2007. A true and correct copy of the '190 patent is attached hereto as Exhibit D. 3 1. The Alcatel Defendants, collectively and individually, have infringed and

continue to inhnge the '190 patent including without limitation by making, using, selling,
COMPLAINT DEMAND FOR JURY TRIAL

5

Case No.

Case 5:08-cv-02363-JW

Document 1

Filed 05/07/2008

Page 7 of 12

offering to sell, and/or importing within or into the United States the OmniTouch Unified Communication My Phone and other products and/or systems practicing the claimed invention. The Alcatel Defendants are liable for infringement under 35 U.S.C. limitation both direct and indirect infringement of the '190 patent. COUNT V 32. Oracle hereby restates and realleges the allegations set forth in paragraphs

9 271,

including without

1 through 3 1 above and incorporates them by reference. 33. Oracle International Corporation is the owner of all right, title, and interest

in United States Patent No. 7,039,176 entitled "Call Center Administration Manager With RulesBased Routing Prioritization" ("the '176 patent"), duly and legally issued on May 2,2006. A true and correct copy of the ' 176 patent is attached hereto as Exhibit E. 34. The Alcatel Defendants, collectively and individually, h&veinfringed and

continue to infringe the '176 patent including without limitation by making, using, selling, offering to sell, andor importing within or into the United States the Alcatel Lucent OrnniTouch Contact Center, the Alcatel Lucent OmniGenesys Contact Center, and other products and/or systems practicing the claimed invention. The Alcatel Defendants are liable for infringement under 35 U.S.C.
' 176 patent.

8 271, including without limitation both direct and indirect infringement of the
COUNT VI

35.

Oracle hereby restates and realleges the allegations set forth in paragraphs

1 through 34 above and incorporates them by reference. 36. Siebel Systems, Inc. is the owner of all right, title, and interest in United

States Patent No. 7,136,448 entitled "Managing Received Communications Based On Assessments Of The Senders" ("the '448 patent"), duly and legally issued on November 14,2006. A true and correct copy of the '448 patent is attached hereto as Exhibit F. 37. The Alcatel Defendants, collectively and individually, have infringed and

continue to inhnge the '448 patent including without limitation by making, using, selling, offering to sell, andor importing within or into the United States the Alcatel Lucent OrnniTouch
COMPLAINT DEMAND FOR JURY TRIAL

6

Case No.

Case 5:08-cv-02363-JW

Document 1

Filed 05/07/2008

Page 8 of 12

Contact Center, the Alcatel Lucent OrnniGenesys Contact Center, and other products andlor systems practicing the claimed invention. The Alcatel Defendants are liable for infringement under 35 U.S.C. 5.271, including without limitation both direct and indirect infringement of the '448 patent. 38. Pursuant to 35 U.S.C.

8 284, Oracle is entitled to damages for the Alcatel

Defendants' infringement of the Oracle Patents. 39. Pursuant to 35 U.S.C.

5 283, Oracle is entitled to a permanent injunction

against further infringement of the Oracle Patents.

COUNT VII
40. Oracle hereby restates and realleges the allegations set forth in paragraphs

1 through 39 above and incorporates them by feference. 41. Alcatel Lucent purports to be the owner of U.S. Patent No. 5,418,943 ("the

'943 patent") entitled "Information Systems With Knowledge Base And Data Base." A true and correct copy of the '943 patent is attached hereto as Exhibit G. 42. Oracle has not infringed, .and is not infringing, either directly or indirectly,

contributorily or otherwise, any claim of the '943 patent. 43. The claims of the '943 patent are invalid for failure to comply with the

requirements of the Patent Laws of the United States, including but not limited to the provisions of35 U.S.C. $8 101,102, 103, andlor 112.

COUNT VIII
44. Oracle hereby restates and realleges the allegations set forth in paragraphs

1 through 43 above and incorporates them by reference. 45. Alcatel Lucent purports to be the owner of U.S. Patent No. 6,272,502 ("the

'502 patent7') entitled "Refreshing Materialized Views Of A Database To Maintain Consistency With Underlying Data." A true and correct copy of the '502 patent is attached hereto as Exhibit

46.

Oracle has not infringed, and is not infringing, either directly or indirectly,

contributorily or otherwise, any claim of the '502 patent.
COMPLAINT

DEMAND FOR JURY TRIAL

7

Case No.

Case 5:08-cv-02363-JW

Document 1

Filed 05/07/2008

Page 9 of 12

47.

The claims of the '502 patent are invalid for failure to comply with the

requirements of the Patent Laws of the United States, including but not limited to the provisions of 35 U.S.C. $5 101,102,103, and/or 112.

COUNT IX
48. Oracle hereby restates and realleges the allegations set forth in paragraphs

1 through 47 above and incorporates them by reference.
49. Alcatel Lucent purports to be the owner of U.S. Patent No. 6,205,449 ("the

'449 patent") entitled "System And Method For Providing Hot Spare Redundancy And Recovery For A Very Large Database Management System." A true and correct copy of the '449 patent is attached hereto as Exhibit I. 50. Oracle has not infringed, and is not infringing, either directly or indirectly,

contributorily or otherwise, any claim of the '449 patent. 51. The claims of the '449 patent are invalid for failure to comply with the

requirements of the Patent Laws of the United States, including but not limited to the provisions of 35 U.S.C.

$8 101,102,103, and/or 112.
COUNT X
52. Oracle hereby restates and realleges the allegations set forth in paragraphs

1 through 5 1 above and incorporates them by reference. 53. Alcatel Lucent purports to be the owner of U.S. Patent No. 6,502,133 ("the

'133 patent") entitled "Real-Time Event Processing System With Analysis Engine Using Recovery Information." A true and correct copy of the '133 patent is attached hereto as Exhibit J. 54. Oracle has not infringed, and is not infringing, either directly or indirectly,

contributorily or otherwise, any claim of the '133 patent. 55. The claims of the '133 patent are invalid for failure to comply with the

requirements of the Patent Laws of the United States, including but not limited to the provisions of 35 U.S.C.

$8 101,102, 103, and/or 112.

COMPLAINT DEMAND FOR JURY TRIAL

Case No.

Case 5:08-cv-02363-JW

Document 1

Filed 05/07/2008

Page 10 of 12

COUNT XI
56. Oracle hereby restates and realleges the allegations set forth in paragraphs

1 through 55 above and incorporates them by reference. 57. Alcatel Lucent purports to be the owner of U.S. Patent No. 5,659,725 ("the

'725 patent") entitled "Query Optimization By Predicate Move-Around." A true and correct copy of the '725 patent is attached hereto as Exhibit K. 58. Oracle has not infringed, and is not infringing, either directly or indirectly,

contributorily or otherwise, any claim of the '725 patent. 59. The claims of the '725 patent are invalid for failure to comply with the

requirements of the Patent Laws of the United States, including but not limited to the provisions of35 U.S.C.

$5 101,102, 103, andlor 112.
COUNT XI1
60. Oracle hereby restates and realleges the allegations set forth in paragraphs

1 through 59 above and incorporates them by reference. 61. Alcatel Lucent purports to be the owner of U.S. Patent No. 5,649,068 ("'the

'068 patent") entitled "Pattern Recognition System Using Support Vectors." A true and correct copy of the '068 patent is attached hereto as Exhibit L. 62. Oracle has not infringed, and is not infringing, either directly or indirectly,

contributorily or otherwise, any claim of the '068 patent. 63. The claims of the '068 patent are invalid for failure to comply with the

requirements of the Patent Laws of the United States, including but not limited to the provisions of35U.S.C.

$8 101, 102, 103,andlor 112.
COUNT XI11
64. Oracle hereby restates and realleges the allegations set forth in paragraphs

1 through 63 above and incorporates them by reference. 65. Alcatel Lucent purports to be the owner of U.S. Patent No. 6,732,156 ("the

'156 patent") entitled "System For Routing Electronic Mails." A true and correct copy of the '156 patent is attached hereto as Exhibit M.
COMPLAINT DEMAND FOR JURY TRIAL

9

Case No.

Case 5:08-cv-02363-JW

Document 1

Filed 05/07/2008

Page 11 of 12

66.

Oracle has not infkinged, and is not infringing, either directly or indirectly,

contributorily or otherwise, any claim of the '1 56 patent. 67. The claims of the '156 patent are invalid for failure to comply with the

requirements of the Patent Laws of the United States, including but not limited to the provisions of35 U.S.C.

$5 101, 102,-103,andlor 112.
PRAYER FOR RELIEF
WHEREFORE, Oracle prays for the entry of judgment that: A. The Alcatel Defendants have infringed each of the Oracle Patents under 35

U.S.C. $271;

B.

Oracle has not infringed and is not infringing, directly, indirectly or

otherwise, any claims of the Alcatel Lucent Patents; C.
,

Each of the claims of the Alcatel Lucent Patents is invalid; The Alcatel Defendants pay to Oracle damages pursuant to 35 U.S.C.

D.

$ 284, including an accounting; E. The Alcatel Defendants pay to Oracle attorneys' fees pursuant to 35 U.S.C.

5 285;
F. interest; G. The Alcatel-Defendants and each of their officers, employees, agents, alter The Alcatel Defendants pay to Oracle pre-judgment and post-judgment

egos, attorneys, and any persons in active concert or participation with them are restrained and enjoined from infiinging the Oracle Patents;

H.

The Alcatel Defendants and each of their officers, employees, agents, alter

egos, attorneys, and any persons in active concert or participation with them are restrained and enjoined from further prosecuting or instituting any action against Oracle claiming that the Alcatel Lucent Patents are valid, enforceable, or infringed, or from representing that Oracle's products or services, or that others' use thereof, infiinge the Alcatel Lucent Patents; and

I.

Awarding such other and further relief as the Court deems just and proper.

COMPLAINT DEMAND FOR JURY TRIAL

10

Case No.

Case 5:08-cv-02363-JW

Document 1

Filed 05/07/2008

Page 12 of 12

DEMAND FOR JURY TRIAL
Oracle demands a trial by jury on all issues so triable. Dated: May 7,2008 WEIL, GOTSHAL & MANGES LLP

By: Douglas E. Lumish Attorneys for Plaintiffs ORACLE CORPORATION, ORACLE USA, INC., ORACLE INTERNATIONAL CORPORATION, AND SIEBEL SYSTEMS, INC.

COMPLAINT DEMAND FOR JURY TRIAL

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 1 of 45

Exhibit A

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 2 of 45

(12)

United States Patent
Paul et al.

(10) (45)

Patent NO.: US 7,188,183 B1 Date of Patent: Mar. 6,2007
A A A A A 112000 212000 912000 1112000 1212000 Bayeh et al. Hill et al. Meltzer et al. Call Himmel

(54) MAINTAINING STATE INFORMATION IN MOBILE APPLICATIONS (75) Inventors: Jyotirmoy Paul, Redmond, WA (US); Jeff Barton, San Francisco, CA (US); Anit Chakraborty, Redwood City, CA (US); Siva Dirisala, San Mateo, CA (US) (73) Assignee: Oracle International Corporation. Redwood Shores, CA (US)
( * ) Notice:

6,012,098 6,023,714 6,125,391 6,154,738 6,167,441

6,212,640 B1

412001 Abdelnur et al

(Continued) OTHER PUBLICATIONS
Siyan, Karanjit; NetWare TCPIIP and NFS; Copyright 1994 by New Riders Publishing; pp, 11, 94, 103,

Subject to any disclaimer, the term of this patent is extended or adjusted under 35 U.S.C. 154(b) by 747 days.

(21) Appl. No.: 091872,066 (22) Filed: May 31, 2001 Related U.S. Application Data (63) Continuation-in-part of application No. 091631,884, filed on Aug. 4, 2000. (60) Provisional application No. 601222,817, filed on Aug. 4. 2000. (51) Int. C1. G06F 15/16 (2006.01) (52) U.S. C1. ....................................... 7091229; 7091217 (58) Field of Classification Search ................ 7091202, 7091203,246,221,230,232,217219,227229; 707110, 104; 705150; 4551414, 418 See application file for complete search history. (56) References Cited U.S. PATENT DOCUMENTS
5,708,780 5,764,916 5,790,800 5,835,712 5,835,914 5,905,486 5,918,013 A A A A A A A 111998 611998 811998 1111998 1111998 511999 611999 Levergood et al. Busey et al. Gauvin et al. DuFresne Brim Brittenham et al. Mighdoll et al.

Primary Examiner-Larry D. Donaghue Assistant Examiner-Mohammad Siddiqi (74) Attorney, Agent, or Firm-Hickman Palermo Truong & Becker LLP (57) ABSTRACT

Techniques for interacting with a client process on a mobile device connected to a network over a wireless link includes receiving a first request at a state machine executing on a first platform connected to the network. The first request is associated with the client process, and is for a service from an application. A first method of the application is invoked with first data in response to the first request. Second data for the client process is received from the application in response to invoking the first method. A first response is based on the second data. The first response is sent for the client process. The method includes managing information about a plurality of requests associated with the client process. The application executes on a second platform connected to the network. Both the first and second platforms are distinct from the mobile device. These techniques free the developers of applications for wireless mobile devices from the responsibility for managing their session state information. This greatly simplifies and accelerates the development of applications. 8 Claims, 15 Drawing Sheets

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 3 of 45

US 7,188,183 B1
Page 2 U.S. PATENT DOCUMENTS
512001 512001 612001 7/200 1 812001 912001 1012001 10/2001 112002 212002 312002 6/2002 712002 812002 1012002 10/2002 1012002 1112002 1112002 1/2003 112003 212003 Meltzer et al. Laursen et al. Greer et al. Apte et al. .................... 707/10 Gamo Laursen et al. Kanevsky Dahm et al. Alam et al. Li et al. Wies et al. Erickson et al. Tso et al. Jamtgaard et al. Hind et al. Kelly et al. .................... 716!1 Schwartz et al. ........... 4551406 Daswani et al. Monday Holland et al. Anderson et al. Wanderski et al. Bridgman et al. Rossmann et al. Britton et al. DeRose et al. Roberts et al. Boag et al. Nicolas et al. Chapman et al. Bodin et al. Dutta et al. Bayeh et al. Burkett et al. Allen Sasagawa Santoro et al. Jiang et al. MacPhail Beresin Kloba et al. ................ Cuijpers et al. Fishman et al.

* cited by examiner

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 4 of 45

U.S. Patent

Mar. 6,2007

Sheet 1 of 15

MOBILUHAND-HELDDEVICE

llQ MOBILE
APPLICATIONS SERVER

MOBILE INTERACTIONS SERVER

I

D
APPLICATION

LISTENER

PEI+
APPLl CATION

w
STATE MACHINE

FIG. 1 A

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 5 of 45

U.S. Patent
l&L NAME
182VALUE

Mar. 6,2007

Sheet 2 of 15

MOBILE APPLICATIONS BEAN

m

GENERATE XML METHOD

FIG. 1B

m

APPLICATION MENU ITEM BEAN
179a REFERENCE TO FIRST PAGE BEAN

EXIT APPLICATION EVENT HANDLER

U2.a
PAGE BEAN
f~

173a FIELD OBJECT
/ -

j73b FIELD OBJECT)

y / i

. CONSTRUCTOR
FOR PAGE BEAN

.me
174a VECTOR OF EVENT HANDLERS

1 7 6 a LISTED EVENT HANDLER

I

I 179b REFERENCETO NEXT PAGE BEAN
m
PAGE BEAN
CONSTRUCTOR

I
, -

E k FIELD OBJECT)

\

lZ3d FIELD OBJECT
173e FlELD OaJECT

176b LISTED EVENT HANDLER

FOR PAGE BEAN

0 . e

I 174b VECTOR OF EVENT HANDLERSI
I I

I

I

179c POINTER TO NEXT PAGE BEAN

I

FIG. 1C

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 6 of 45

U.S. Patent

Mar. 6,2007

Sheet 3 of 15

w
NETWORK MOB1t E INTERACTIONS DEVICE-SENSITIVE PRESENTATION MGR
<5?b

113c

XML TO PROTOCOL CONVERTER

IM

LISTENER

I45DEVICE PROFILE <
154b STATE MACHINE
f

EVENT HANDLER

\

-

<

FIG. 1D

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 7 of 45

U.S. Patent

Mar. 6,2007

Sheet 4 of 15

WAIT FOR REQUEST FROM CLIENT TO START SESSION WlTH MOBILE APPLICATIONS SERVER

my

A

GENERATE LISTENERS FOR SUBSEQUENT REQUESTS FROM CLIENT

m
OBTAIN PROFILE OF MOBILE DEVICE ON WHICH CLIENT IS EXECUTING
I

2a8>
DETERMINE MENU ITEMS OF REGISTERED APPLICATIONS AVAILABLE TO CLIENT

2lQ>
INVOKE MENU ITEM METHODS OF STATE MACHINE FOR SESSION WlTH CLIENT

212
SEND MENU ITEMS TO CLIENT VIA PRESENTATION MANAGER

-

FIG. 2A

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 8 of 45

U.S. Patent

Mar. 6,2007

Sheet 5 of 15

270 MAlN MENU SCREEN

1

22 MAlN MENU TITLE
2Z.hTUCT FIELD WlTH LABEL OF FIRST APPLlGATlON
TEXT FIELD WITH LABEL OF SECOND APPLICATION

TEXT FIELD WITH LABEL OF THIRD APPCICAT[ON

uZ TEXT FIELDWlTH "EXIT SERVER"

c
ZZ&
PROMPT TO INPUT LINE NUMBER OF CHOICE

FIG. 2B

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 9 of 45

U.S. Patent

Mar. 6,2007

Sheet 6 of 15

US 7,188,183 BI

INVOKE STATE MACHINE EXIT PAGE EVENT HANDLER ( WITH EVENTOBJECT

INVOKE STATE MACHINE CHANGE FIELD HANDLER WITH EVENT OBJECT

N ?
INVOKE STATE MACHINE INSTANTIATE PAGE HANDLER \ WITH EVENT OBJECT

4 '

+

f

236>
UPDATE STATE INFORMATION

V
2322
INVOKE STATE MACHINE ENTER FIELD HANDLER WlTH EVENT OBJECT

244)

(

INVOKE STATE MACHINE ENTER PAGE HANDLER WlTH EVENT OBJECT

-

FIG. 2C

GENERATE & RETURN XML DOCUMENT TO LISTENER

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 10 of 45

U.S. Patent

Mar. 6,2007

Sheet 7 of 15

2811
EVENT OBJECT
f

\

282 GET SOURCE METHOD
\
f
d '

I

284 GET SESSION METHOD
\
. J

\

=GET
\

ACTION METHOD
J

288 ATTRIBUTES AND VALUES
*

FIG. 2D

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 11 of 45

U.S. Patent
3l-Q

Mar. 6,2007

Sheet 8 of 15

SESSION OBJECT
\

332 METHOD TO GET CONNECTION
J

f

334 METHOD TO GET PREVIOUS PAGE
\
f

336 METHOD TO STORE OBJECT IN SESSION
\

334 METHOD TO GET OBJECT IN SESSION

a

342 CONNECTION INFORMATION
3 4 OBJECTS STORED IN SESSION
350a
FIRST INSTANCE OF AN APPLICATION DURING SESSION

351a
STATE OF FIRST PAGE OBJECT 353a UNIQUE NAME, TYPE, ATTRIBUTES VALUES OF FIRST FIELD OBJECT FOR PAGE

=

UNIQUE NAME, TYPE, ATTRIBUTES VALUES OF SECOND FIELD OBJECT FOR PAGE

353c UNIQUE NAME, TYPE, ATTRIBUTES VALUES OF THIRD FIELD OBJECT FOR PAGE

... .
e32 -1 3 1
-314

3

FIG. 3

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 12 of 45

U.S. Patent

Mar. 6,2007

Sheet 9 of 15

420

WAIT FOR ACTION MESSAGE FROM CLIENT ON PORT
I

4Q 3 7
INVOKE STATE MACHINE SPECIAL KEY HANDLER WITH EVENT OBJECT

/

FIG. 4A

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 13 of 45

U.S. Patent

Mar. 6,2007

Sheet 10 of 15

US 7,188,183 BI

*

rl

INVOKE APPLICATION PAGE EVENT HANDLER

FIG. 48

NO

*

44i
INVOKE NEXT STATE MACHINE EVENT HANDLER WlTH EVENT OBJECT

45 4\
YES

>

INVOKE STATE MACHINE EXlT APPLICATION HANDLER WlTH EVENT OBJECT

SEND HTTP REQUEST TO URL, PLACE HTML RESPONSE IN SESSION MEMORY INVOKE APPLICATION EXlT PAGE HANDLER

STATE MACHINE INVOKES NO OTHER HANDLERS FOR EVENT OBJECT

453
STATE MACHINE INVOKES OTHER HANDLERS FOR EVENT OBJECT

3

STATE MACHINE ONLY INVOKES STATE MACHINE HANDLER FOR SOURCE OF EVENT OBJECT

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 14 of 45

U.S. Patent

Mar. 6,2007

Sheet 11 of 15

US 7,188,183 BI

501 MOBILE DEVICE DISPLAY

L
515 TEXT FlELD PROMPT

f

540 PAGE TITLE

7 520
LIST OF VALUES (LOV) FlELD ELEMENT

MlSC RCPT TXN TYPE :>RECEIPT - ACCT : 10.000.504 , ITEM : C45050 ZONE : =GI LOC :S L ~ UOM : EA LOT :/12388797 SERIALS : 'RANGE' SN : 1238675 END SN : 1238675 REASON :

7 514
\

1
0

/

TEXT FIELD ELEMENT 516 TEXT FIELD VALUE

517 EDITABLE VALUE HIGHLIGHTED
510 ORIGINAL PAGE

I

FIG. 5A
TXN TYPES 1 COUNT 12 RECEIPT 3 SHIP 4 HOLD 5 RETURN 6 DAMAGE 7 UNCLASSIFIED

-

530 /BUTTON I FlELD ELEMENT

510 MOBILE DEVICE DISPLAY

527 SELECTED VALUE HIGHLIGHTED

510 NEXT PAGE

FIG. 5B

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 15 of 45

U.S. Patent

Mar. 6,2007

Sheet 12 of 15

610

I \

RECEIVE XML DOCUMENT DESCRIBING PAGE OBJECT COMPRISING FIELD OBJECTS

I

OBTAIN PROFILE OF MOBILE DEVICE ON WHICH CLIENT IS EXECUTING

m>

I

BUILD ONE OR MORE DEVICE SPECIFIC XML PAGES BASED ON THE RECEIVED PAGE AND A SCREEN FORM FACTOR FROM THE DEVICE PROFILE

SEND XML PAGE TO CONVERTER ROUTINE

m7

FIG. 6A

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 16 of 45

U.S. Patent

Mar. 6,2007

Sheet 13 of 15

US 7,188,183 BI

RECEIVE XML DOCUMENT DESCRIBING PAGE OBJECT COMPRISING FIELD OBJECTS

mi

I

COMMUNICATE WITH CLIENT PROCESS USING CLIENT PROTOCOL BASED ON INFORMATION IN XML DOCUMENT AND DEVICE PROFILE

SEND XML PAGE TO CONVENTIONAL ROUTINE TO CONVERT TO CLIENT MARKUP LANGUAGE (E.G., WML, HTML, VoxML)

FIG. 6B

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 17 of 45

U.S. Patent

Mar. 6,2007

Sheet 14 of 15

US 7,188,183 BI

(

I

GENERATE ONE OR MORE PAGES EACH COMPRISING ONE OR MORE SELECTABLE GRAPHICAL ELEMENTS

1

I

FOR EACH PAGE GENERATE A PAGE EVENT HANDLER COMPRISING LOGIC TO EXECUTE IN RESPONSE TO A USER OF THE MOBILE DEVICE SELECTING A SELECTABLE GRAPHICAL ELEMENT, THE LOGIC BASED ON VALUES ASSOCIATED WlTH THE GRAPHICAL OBJECT, OR SESSION STATE INFORMATION, OR BOTH, \ AVAILABLE FROM A MOBILE INTERACTIONS SERVER

REGISTER A MOBILE RESOURCE COMPRISING THE PAGES AND PAGE EVENT HANDLERS WlTH THE MOBILE INTERACTIONSSERVER

FIG. 7

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 18 of 45

U.S. Patent

Mar. 6,2007

Sheet 15 of 15

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 19 of 45

US 7,188,183 B1
1
MAINTAINING STATE INFORMATION IN MOBILE APPLICATIONS

2

asynchronous in that each can take an arbitrary amount of time to travel from source device to destination device. Consequently, two successive messages may arrive out of CLAIM OF PRIORITY order. The messages are stateless in that each message is 5 sent, transmitted and received independently, without inherThis application claims priority to U.S. provisional appliiting or relying on characteristics from any previous mescation Ser. No. 601222,817, filed Aug. 4, 2000 entitled sages sent. The program that initiates the communication is a client "Techniques for implementing mobile and industrial dataprocess, and the program that waits for and responds to a base applications" by Jyotirmoy Paul, Jeff Barton, Anit Chakraborty and Siva Dirisala, hereby incorporated by ref- l o request from the client process is the server process. The erence in its entirety. This application also claims priority to term "client" is often used to refer to either the client and is a Continuation-In-Part of U.S. application Ser. No. process, or the machine on which the client process runs, or 091631,884, filed Aug. 4, 2000 entitled "Multi-device Supboth. The term "server" is similarly used to refer to either the server process, or the machine on which the server process port for Mobile Applications Using XML" by Jyotirmoy Paul, Jeff Barton, Anit Chakraborty and Siva Dirisala, 1s is executing, or both. hereby incorporated by reference in its entirety. A widely used client process supported by many servers on the Internet is a browser. A browser communicates with CROSS REFERENCE TO RELATED servers to retrieve and decode data expressed in HTML. APPLICATIONS HTML marks portions of the data with tags related to the 20 manner in which the portions are to be displayed. This application is related to U.S. Pat. No. 7,05 1,080, filed Adding programs, referred to as plug-ins, to a browser can May 31,2001 entitled "Techniques for Navigating in Mobile extend a browser's functionality. A browser that has added functionality due to one or more plug-ins is referred to Applications," by Jyotirmoy Paul, Jeff Barton, Anit Chakraborty and Siva Dirisala. herein as an extended browser. Extended browsers may, for This application is related to U.S. Patent application serial 25 example, use input forms into which the user can enter data that is validated in some regard before being sent back to the number 091872,566, filed May 3 1, 2001 entitled "Techniques for Supporting Multiple Devices in Mobile Applicaserver. Standard HTML does not provide for this client side tions," by Jyotirmoy Paul, Jeff Barton, Anit Chakraborty and validation process. Siva Dirisala. Portable devices capable of wireless communications are This application is related to U.S. Pat. No. 7,013,329, filed 30 finding ever more uses and popularity. Some of these mobile May 31,2001 entitled "Techniques for Programming Eventdevices are able to connect to a network. It is desirable to Driven Transactions in Mobile Applications," by Jyotirmoy make network-based services available for access by such Paul, Jeff Barton, Anit Chakraborty and Siva Dirisala. network capable mobile devices. When making network-based services available for FIELD OF INVENTION 35 mobile devices, one cannot count on the ability to use software designed for a general-purpose computer. The The Present invention generally relates to network-based smallest laptops are too cumbersome for some uses, such as services for mobile, wireless devices. The invention relates for wireless telephony and for warehouse inventory control, more specifically to maintaining state information for comHandheld devices used by agents of an enterprise in the field plex transactions involving a network-based service and 40 for these uses have limited hardware and software due to mobile, wireless devices. constraints imposed by limited size and low power availability. BACKGROUND OF THE INVENTION For example, screen size, memory and plug-in functionality on the handheld device may be significantly less than Society is becoming increasingly reliant on network- 45 what is available through a browser on a laptop, so that a based services. Network-based services are any services Web page easily viewed on a low-end laptop is essentially provided to devices over a network. ( h n m o n networkunintelligible on the mobile device. Anetwork-based service based services include, for example, services provided over cannot rely on a particular mobile device having a screen of the World Wide Web, database services, etc. a needed size or having the power to execute a full browser Services provided over the World Wide Web are typically 50 or to accept plug-ins, such as those that allow the browser to presented in the form of one or more web pages. A web page use forms. is data expressed in a HyperText Markup Language (HTML) Some of these small footprint handheld devices may not and transferred over a network using the hypertext transfer run a World Wide Web browser at all. For example, mobile protocol (HTTP) of the Internet protocol (IP). The network telephones use a wireless application protocol (WAP), which can be a local network, a wide area network, or the Internet 55 does not respond to the full set of HTML tags. These devices itself, a public network of computer networks. use data presented in a wireless markup language (WML), Database services may be provided by a database applia specific implementation of the extensible markup language cation, which in turn may access a database through services (XML) using a WML-specific document type definition provided by a database server. A database application is a (DTD). Other handheld devices used in industry, such as bar software application that communicates with a database 60 code readers, communicate with a network using a teletype server process on the network to store data into and retrieve protocol (Telnet), which accepts or sends one character at a data from a database. time, with little or no display options such as font size, font According to the Internet protocol (IP), a program on one type, italics, and color, and without the capability for disdevice connected to the network interacts with another playing images. program located on another device with asynchronous state- 65 Complex interactions, such as those involving shopping less messages. The two programs run independently and online or employing an expert system to diagnose symptoms interact only through these messages. The messages are of a problem, require many messages to be sent back and

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 20 of 45

US 7,188,183 B1 3
forth between a client process and one or more server processes. In some cases, a first process must pass along "state information" with a first message to a second process, so that the second process will pass the state information back in a subsequent message to the first process. The state 5 information received by the first process in the subsequent message lets the first process know that the subsequent message is related to the same transaction as the first message. One technique to pass the state information involves l o including the state information along with the address that identifies the destination to which a message is sent. That address may take the form, for example, of a universal application locator (URL) address supplemented with extra characters that convey the state information. 15 Another technique involves placing the state information in a file called a cookie. The cookie is sent along with a message to a client machine. The client machine stores the cookie. Whenever the client machine sends a message to the source of the cookie, the client machine includes the cookie 20 with the message. Unfortunately, these approaches for communicating state information are not always available when the transaction involves a mobile device. For example, a mobile device running the WAP protocol has the capacity only for a limited 25 amount of information in each page of information received. Specifically,in most mobile telephones, a Page is limited by amaximumof about 1 5 0 0 b ~ t e( a b ~ t e i s b i n a ~ d i g i t s a n d s usually represents one character of text). In such a WAP device a long network address, such as a URL with a large 30 amount of state information, is not feasible. Furthermore, the WAP Specification does not support cookies. Hence a Web server cannot manage a session with a WAP device involving a complex transaction that uses cookies. Because there is a wide variety of mobile devices, with a 35 wide range screen sizes, sizes, page buffers, Processor types and client ~rotocols, among other properties, it is generally cost prohibitive to try to duplicate all the functionality of a network-based service for each possible mobile device. 40 Based on the foregoing, there is a clear need for techniques that allow network-based services to be made readily a wide range devices Or complex transactions, or both, without having to explicitly program each network-based service to support all forms of 45 mobile devices. SUMMARY OF THE INVENTION Techniques are provided for interacting with a client process on a mobile device connected to a network over a wireless link. According to one aspect of the invention, the techniques include receiving first data in a first method of an application executing on a first platform connected to the network. The first data is received from a state machine in response to a message from the client process. Second data for the client process is returned to the state machine in response to receiving the first data. The state machine executes on a second platform to the network, Both the first and second platforms are distinct from the mobile device. The state machine manages information about a plurality of messages from the client process. According to another aspect of the invention, techniques for interacting with the client process on the mobile device connected to the network over the wireless link includes receiving a first request at a state machine executing on a first platform connected to the network. The first request is
50

4
associated with the client process. The first request is for a service from an application. A first method of the application is invoked with first data in response to the first request. Second data for the client process is received from the application in response to invoking the first method. A first response is based on the second data. The first response is sent for the client process. The method includes managing information about a plurality of requests associated with the client process. The application executes on a second platform connected to the network. Both the first and second platforms are distinct from the mobile device. These techniques free the developers of applications for wireless mobile devices from the responsibility for managing their session state information. This greatly simplifies and accelerates the development of applications. BRIEF DESCRIPTION OF THE DRAWINGS The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which: FIG. 1A is a block diagram that illustrates one embodiment of a mobile applications server connected to a network with which a mobile device communicates over a wireless link. FIG. 1B is a block diagram that illustrates a graphical object used by an embodiment of the mobile applications server 110 to interact with a mobile device, FIG. 1C is a block diagram that illustrates an embodiment of an application comprised of a hierarchy of graphical objects and methods, FIG. 1~ is a block diagram that illustrates one embodiment of a mobile interactions server used in the mobile applications server of FIG, 1 ~ . FIG. 2A is a flowchart that illustrates one embodiment of a method for a mobile interactions server to respond to a client making an initial request for services, FIG, 2B is a block diagram of a main menu on a screen of a mobile device produced in response to requesting applications from a mobile applications server, FIG, 2C is a flowchart that illustrates one embodiment of a method for a mobile interactions server to respond to a subsequent action by a user of the client process, FIG. 2D is a block diagram of an event object used by the mobile interactions server. FIG. 3 is a block diagram that illustrates an embodiment of a data structure for storing session state information by the mobile applications server 110. 4A is a flowchart that a method for a 'pecial key event. FIG. 4B is a flow chart that illustrates exception handling methods of the server. 5A is a diagram that an a page On a a device. FIG. 5B is a diagram that illustrates an embodiment of a next Page On a a device. FIG. 6A is a flowchart that illustrates one embodiment of a method for a device-sensitive presentation manager to Prepare Page output for a particular mobile device. FIG. 6B is a flowchart that illustrates one embodiment of a method for an XML to protocol converter to manage page output for a particular mobile device. FIG. 7 is a flowchart that illustrates one embodiment of a method for an application developer to utilize a mobile interactions server.

55

60

65

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 21 of 45

US 7,188,183 B1
5
FIG. 8 is a block diagram that illustrates a computer system upon which an embodiment may be implemented. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention. Operational Context To illustrate network applications interacting with mobile devices employing a wireless link, consider FIG. 1A. FIG. 1A is a block diagram that illustrates one embodiment of a mobile applications server 110 connected to a network 108 with which a mobile device 101 communicates over a wireless link 106. The mobile device 101 includes a screen display 102, one or more keys 104 and a client process 103 running on a microprocessor (not shown) in the mobile device 101. Some mobile devices may include a sensor 105, such as a microphone or barcode reader. The mobile device 101 communicates with a base station 107 using a wireless link 106 that may be proprietary. Examples of wireless links include a local radio frequency link such as IEEE 802.11, a wide area radio frequency link, a satellite link, and a personal cornmunication services (PCS) data link through a WAP Gateway. The base station 107 is connected to the network 108. The base station 107 passes network message traffic between the client 103 and the servers on the network 108. The network 108 may be any network using an asynchronous stateless protocol like TCPIIP, including a local network, a private wide area network, or the Internet. The mobile applications server 110 includes one or more processes executing on a machine connected to the network 108. According to one embodiment, the mobile applications server 110 provides functionality for the mobile device 101 beyond the functionality built into the processor and client 103 on board the mobile device itself. In one embodiment, the mobile applications server 110 provides one or more applications 116 that may be used by a mobile device over the network 108. For example, assume that mobile device 101 is a device having a barcode reader as the sensor 105. Such a device may be used in conjunction with an inventory application to update an inventory database. The update may be performed by scanning the barcode on an item and pressing a key to indicate whether the item is being added to the inventory, or is being removed from the inventory due to damage, due to sale, or due to transport to another warehouse. For another example, a database application for mobile device 101 having a microphone, such as a mobile phone, could identify the user of the mobile device based on a comparison of the user's voice with a voice print for the user. The voice print may be maintained in a database by a database server on the same platform as the mobile applications server 110 or some other server platform on the network 108. The mobile applications server 110 may also provide non-database applications. For example, if the sensor 105 is Referring to FIG. lA, mobile applications server 110 is one or more processes executing on a computing device connected to the network 108 that provides services for a mobile device 101 in response to one or more requests for services from the client process 103 executing on the mobile device 101. Mobile applications server 110 includes one or more applications 116. In general, an application is a set of instructions that can be called to cause one or more processors to perform a series of related tasks for providing a requested service. An application often requires input data and produces output data. An application often comprises one or more methods that can be invoked separately each with their own input and output. Many ways of producing applications are known in the art. For example, in one embodiment, the application is a package of JAVA classes containing public methods that can be invoked separately by the name of the method and the name of the class. Input for each public method is provided as one or more data structures called parameters and output is provided as a returned data structure. The names of the public methods, and the names and definitions of the input and returned data structures are published as an application programming interface (API). In another embodiment, the application is a library of methods created in another Ianguage that also has a published API. In still other embodiments, the application is a compiled program executed by a command line in the operating system language for the platform on which the applications reside. The compiled program operates on input in data files or on an input stream and produces output in data files or on an output stream, all defined in the operating system language. In yet other embodiments, the application is a script in the operating system language that executes several compiled programs in sequence. Each application of the mobile applications 116 on the mobile applications server 110 provides functionality for mobile devices. As described in the background section, different mobile devices may have different characteristics. For example, different devices may communicate on the network through their base stations with different protocols (e.g., WAP, HTTP, Telnet), may have different keys and sensors, and may have different screen sizes, different memory capacities and different processing power. Such differences in characteristics complicate obtaining input for the application and presenting output from the application. These applications 116 are special in that they communicate with the mobile device 101 through a mobile interactions server 150, described next, in a manner that does not require developers of the application 116 to address specific characteristics of the individual mobile device 101.

6
a global positioning system (GPS), then the mobile application could compute the area walked off by a user carrying the mobile device 101 based on positions output from the sensor 105 and transmitted to the mobile applications server 110. According to several embodiments, applications 116 on mobile applications server 110 interact with mobile device 101 through a mobile interactions server 150 in the applications layer. The network device on which mobile applications server 110 executes also includes processes that execute in a network layer, a transport layer, and a security layer that are not significantlymodified by the invention and are not described further. Overview of Functional Components

5

lo

15

20

25

30

35

40

45

50

55

60

65

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 22 of 45

The mobile applications server 110 includes the mobile contains or depends on information carried in a previous request or response. In some embodiments the state inforinteractions server 150 that provides data or methods or both for obtaining input data from the mobile device, for premation database survives for a limited time after communisenting output data at the mobile device, and for managing cation with the client terminates-in case the break in the data communicated with the mobile device. The mobile 5 communications is an unintentional interruption. If the client interactions server 150 receives requests from the client reestablishes communication within the limited time, then the state machine method invoked by the listener to comprocess 103 through the mobile device base station 107 and returns responses to the client process 103 through the base mence a session with the client identifies the existing state information database for the client and employs the existing station 107. The mobile interactions server also passes data to the applications 116 involved, causes methods of the l o database instead of creating a new one. applications 116 involved to be executed, and receives any The mobile applications server also includes a convenoutput from the applications 116 for the mobile device 101. tional XML converter process 112, which translates descripThe mobile interactions server thus operates to intercede tions in the extensible Markup Language (XML) of graphibetween the application 116 and the mobile device 101 to cal elements for display on the screen 102 of mobile device insulate the application 116 from dealing with specific 1s 101 to descriptions used by the base station 107 for several characteristics of individual mobile devices. protocols. Conventional XML converters use an extensible Stylesheet Language (XSL) to translate from XML to any of In the embodiment of FIG. lA,the mobile interactions server 150 generates additional components at runtime in several markup languages used by a variety of base stations. However, there is not a standard markup language for Telnet response to an initial request from the client process 103. These additional components include a listener 152, a state 20 devices, and conventional XML converters do not translate XML descriptions into a markup language for Telnet. In an machine 154 and a state information database 155. The listener 152 is a process launched by the mobile interactions alternative embodiment, shown in FIG. ID, the listener 152 server 150. The listener monitors a port associated with produces Telnet protocol responses that are sent to the input having a particular protocol (e.g., HTTP, WAP, or network 108, bypassing the conventional XML converter Telnet) on the mobile annlications server. The listener acts in 25 112. response to requests received from a client process on the FIG. 1D is a block diagram showing an embodiment 150b port and causes data to be sent back to the client process over of mobile interactions server 150. This embodiment includes the network. an embodiment 152b of listener 152 in which the listener In the embodiment depicted, the listener produces 152 includes a device-sensitive presentation manager 140 descriptions in the extensible Markup Language (XML) of 30 and an XML to protocol converter 114. The device-sensitive graphical elements for display on the screen 102 of mobile presentation manager is a process that modifies the format of data received from the state machine for display on the device 101 which are sent to a conventional XML converter 112 described below. When monitoring some ports, howscreen 102 of the mobile device 101 based on information particular to the mobile device before sending the informaever, the listener 152 does not send an XML document. Instead, the listener 152 produces a response for the mobile 35 tion to the client process. For example, the data from the state machine indicates a device in the protocol used by the base station 107. For example, when listening on a Telnet port, the listener promenu of 10 items, but the screen 102 of the particular mobile duces a response using the Telnet protocol. In this case, the device 101 has only five lines. The device-sensitive presentation manager 140 receives data indicating the menu with response is sent to the base station via the network 108 and bvvasses the conventional XML converter 112. If the 40 the ten items. determines that the mobile device has a response produced by the listener 152 for the client process display screen that only shows five lines, and reformats the uses the methods of an application 116 or information from data to send one of three subsets of the data, each subset previous requests and responses, then the listener causes a indicating five lines of graphical display or less. For method of a state machine 154 to be executed and the example, the first subset of data indicates four menu items listener bases the response for the client process on the data 45 for the first four lines and a button labeled "next items" for the fifth line. The second subset of data indicates three menu returned from the state machine 154. The state machine 154 is a process that is launched by the items for the middle three lines, a button labeled "prev listener. In some embodiments, the state machine 154 is a items" for the first line and a button labeled "next items" for library of methods invoked as controlled by the listener 152. the fifth line. The third subset of data indicates a button In other embodiments. the state machine 154 is a back- 50 labeled "vrev items" on the first line followed bv the last ground process that executes in parallel waiting for a parthree menu items on the next three lines. ticular message upon which to act. The state machine 154 In the illustrated embodiment, the information particular to a mobile device comes from a device profile database 145 receives data from the listener 152 based on requests from the client process and returns responses to the listener 152 holding information about the characteristics of mobile for the client process. The state machine 154 also determines 55 devices. In other embodiments, the information comes from prompting the mobile device for its characteristics and which methods of which applications 116 are involved and causes the involved methods to be executed. obtaining an answer in a process called negotiating. In some embodiments the process is performed by invoking a The state machine 154 also manages information about multiple requests and responses involving the client process method in a library of methods, in another embodiment the for each client process communicating over the port. The 60 process executes in the background waiting for input from the listener. state information database 155 is persistent storage for the information managed by the methods of the state machine In the illustrated embodiment, the output from the device 154 for the client process during the client communication sensitive presentation manager 140 is in XML, which is used session with the mobile interactions server. Thus, the state as a common markup language relatively easily converted to machine 154 and state information database 155 enable 65 device-specific protocols. In another embodiment, a differapplications to perform complex transactions in which a ent markup language is used as the common markup lanresponse passed to the client in response to a request guage.
L L
2 .

Case 5:08-cv-02363-JW

Document 1-2

Filed 05/07/2008

Page 23 of 45

US 7,188,183 B1 9
Listener 152b also includes an internal XML to protocol converter 114. The internal converter 114 is a process that receives data in XML and converts it to a protocol used by the base station 107 of the mobile device 101. Some ~rotocolsuse data in mark U lWiFages produced by an 5 P external conventional XML converter 112. For these protocols, the internal XML to protocol converter 114 sends the XML data to the external conventional XML converter 112 with little or no change, as shown in FIG. 1A by arrow 113a. The XML 'Onverter uses XSL to produce l o different markup languages tailored to types of mobile device and sends data in these markup languages over the network as shown in FIG, 1A by arrow 113b, The external XML converter 112 produces various versions of HTML for HTTP clients like web browsers, a Handheld Device l5 ~~~k~~ L~~~~~~ (HDML) for some devices, a markup language for voice capable gateways (VoxML), and various versions of^^^, such as for E R I C S S O ~ ~ M NOKIATM and 7110 devices. An Example of a conventional XML converter suitable for the external converter 112 is PORTAL-TO- 20 GOTMof the ORACLETMCorporation. For other protocols for which there is not a standard markup language, the internal XML to protocol converter 114 performs parsing of the XML data and converts the data to messages that follow the ~rotocol. example, for the 25 For Telnet protocol, the internal XML to protocol converter 114 determines which XML elements are displayed on the next line and sends the contents of those elements, character by character. to the base station 107. as dictated bv the Telnet protocol. These Telnet responses are not sent to the external 30 conventional XML converter 112 but are sent directly to the network as indicated by arrow 1 1 3 ~ FIG, 1~for the base in station, bypassing the external conventional XML converter 112, This internal XML to protocol converter 114 is especially useful with industrial devices, for example, with 35 industrial bar code readers used on the floor of a warehouse or factory, which communicate with an inventory database application over a local area network using the Telnet protocol.
40

10
telephone's speed dial list maintained in persistent memory on the mobile telephone. The application constructs a first set of graphical elements for the mobile telephone to prompt the user of the telephone to input each character of the name being searched for. This set of graphical elements used together is called a page, l-he application uses the name input by the user to construct a query to send to the third pw database to obtain a list of names and numbers that match the name being searched for, The application then constructs another page of one or more graphical elements to present the one or more resulting names and prompt for the user to select one or more. In response to further user the then page graphical elements to prompt the user to indicate whether the selected names should be added to the speed dial directory or dialed or ignored. Based on the response the application issues a command that causes the telephone to add the numbers to the telephone's speed dial directory or to dial a selected one number or to simply end the application. According to the techniques described below, this application can employ all the graphical elements needed without dealing with the details of the protocol to communicate with the device, or how the gr