apple htc patent lawsuit : exhibits f - j

Upload: findlaw

Post on 30-May-2018

217 views

Category:

Documents


4 download

TRANSCRIPT

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    1/102

    EXHIBIT F

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 1 of 20

    http://blogs.findlaw.com/courtside/?referral=BDhttp://blogs.findlaw.com/courtside/?referral=BDhttp://blogs.findlaw.com/courtside/?referral=BD
  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    2/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 2 of 20

    http://blogs.findlaw.com/courtside/?referral=BDhttp://blogs.findlaw.com/courtside/?referral=BD
  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    3/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 3 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    4/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 4 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    5/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 5 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    6/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 6 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    7/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 7 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    8/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 8 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    9/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 9 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    10/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 10 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    11/102

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    12/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 12 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    13/102

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    14/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 14 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    15/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 15 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    16/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 16 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    17/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 17 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    18/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 18 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    19/102

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    20/102

    Case 1:10-cv-00166-UNA Document 1-4 Filed 03/02/10 Page 20 of 20

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    21/102

    EXHIBIT G

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 1 of 82

    http://blogs.findlaw.com/courtside/?referral=BDhttp://blogs.findlaw.com/courtside/?referral=BDhttp://blogs.findlaw.com/courtside/?referral=BD
  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    22/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 2 of 82

    http://blogs.findlaw.com/courtside/?referral=BD
  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    23/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 3 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    24/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 4 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    25/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 5 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    26/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 6 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    27/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 7 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    28/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 8 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    29/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 9 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    30/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 10 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    31/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 11 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    32/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 12 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    33/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 13 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    34/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 14 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    35/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 15 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    36/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 16 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    37/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 17 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    38/102

    EXHIBIT H

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 18 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    39/102

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    40/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 20 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    41/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 21 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    42/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 22 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    43/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 23 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    44/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 24 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    45/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 25 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    46/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 26 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    47/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 27 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    48/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 28 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    49/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 29 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    50/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 30 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    51/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 31 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    52/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 32 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    53/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 33 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    54/102

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 34 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    55/102

    EXHIBIT I

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 35 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    56/102

    U 7211387

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 36 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    57/102

    5,929,852Jul. 27, 1999

    [l1J[45J

    111111 11/11111 111111111111111111/1111 111111111111111111111111111111/1111111US005929852APatent Number:Date of Patent:

    United States Patent [19JFisher et al.[54J ENCAPSUlATED NETWORK ENTITY

    REFERENCE OF A NETWORKCOMPONENT SYSTEM

    [75] Inventors: Stephen Fisher; Michael A. Cleron,botb of Menlo Park; Timo Bruck,Mountian View, all of Calif.

    5,819,090 10/1998 Wolf et al ".. 345/335 XFOREIGN PATENT DOCUMENTSwoA9107719 5/1991 WIPO.

    OTIlER PUBLICATIONS

    {63] Continuation of application No. 08/435,880, May 5, 1995,abandoned.

    [73] Assignee: Apple Computer, Inc., Cupertino,Calif.[21J Appl. No., 09/007,691[22J Filed' Jan. 15, 1998

    Related U.S. Application Data

    [51J Int. CI.' G06T 1/00[52J U.S. CI.............................................................. 345/335[58J Field of Search 345/335, 339,345/348, 356; 395/701, 200.47, 200.48,680, 681, 682, 683, 684 ABSTRACT57J

    Develop, TheApple Technical Journal, "BUilding an O p e n ~Doc Part Handler", Issue 19,Sep., 1994, pp. 6-16.Baker,S. "Mosaic-Surfing at Home andAbroad," ProceedingsACM SIGUCCS User Services Conference XXII, Oct.16-19, 1994, pp. 159-163.PCT International Search Report dated Oct. 22, 1996 incorresponding PC f Case No. PCT/US96106376.MacWeek, Nov. 7,1994, vol. 8, No. 44, Cyberdog to FetchInternet Resources for OpenDoc APPS, Robert Hess.Opinion, MacWeek Nov. 14, 1994, The Second Decade,Cyberdog Could Be a Breakthrough i f it's Kept on a Leash,Henry NOIT.Plimary Examiner-Joseph H. FeildAttorney, Agent, or Firm-Cesari & McKenna, LLP

    20 Claims, 14 Drawing Sheets

    A networkoriented component system efficiently accessesinformation from a network resource located on a computernetwork by creating an encapsulated network entity thatcontains a referenceto that resource.The encapsulated entityis preferably implemented as a network component storedon a computer remotely displaced from the referencedresource. In addition, the encapsulated entity may be m a n i ~fested as a visual object on a graphical user interface of acomputer screen. Such visual manifestation allows a user toeasily manipulate the entity in order to display the contentsof the resource on the screenor to electronically forward theentity over the network.

    References Cited

    4/1993 Verlclney et al. " 395/936 X1/1996 Nguyen et al. " .. .. .. .. .. .. ... ." 395(7623/1996 Dickinson 395/1606/1996 Meske, Jr. et aI. 395/6007/1996 Sauter 395(7628/1996 lalalian et a1. 395/200.111/1996 Marianetti, II 3951200.088/1997 Nakajima et al. 345/3023/1998 Cleron et al. 395/200,013/1998 Souder et aI. 345/335 X7/1998 Holleran et at 345/335

    U.S. PATENT DOCUMENTS5,202,8285,481,6665,500,9295,530,8525,537,5465,548,7225,574,8625,659,7915,724,5065,724,5565,781,189

    [56J

    VIEWINGEDITOR2Q

    604

    GRAPHICINTERFACEOBJECT

    2SQ

    COMPONENT LAYER .2Q OPERATINGSYSTEM1l!

    WINDOWMANAGER

    il l

    Copy provided by USPTO from the PIRS Imaae Database on 11/06/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 37 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    58/102

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    59/102

    u.s. Patent Jul. 27, 1999 Sheet 2 of 14 5,929,852

    @ 8 r.:0tillj 9 ]

    I I I. ., - I. I- -~ L" ;' .-: >:~ "....... :::::_ . J . ... 0 ". Io . ti l I It

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    60/102

    U.S. Patent Jul. 27, 1999 Sheet 3 of 14 5,929,852

    co 0... "!"C' ) ... - .....t..... C' ) 'L.- >- L.....0: 0:0 I - >-~ 0:W::'::: ::J ::J 0~ ( / )

    ( ) a..(/)8- ") 0: -( ' ( ) ( UJ( )

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    61/102

    gJ'"....o....,.......

    \.rJ""de.!'ll==...

    N...,,...'"'"'"

    U l1900U lN

    ,400490

    FIG. 4

    o / " ' T V V ~ (NE1WORK NE1WORK NE1WORK NE1WORK GOMP1 COMPo APPLIC. APPLIC.COMPONENT COMPONENT COMPONENT COMPONENT

    1 1 I' - -,

    NE1WORK450 "- COMPONENTLAYER

    COMPONENT ARCHITECTURE LAYER 430 lOPERATING SYSTEM 420

    tHARDWARE 410

    a3so"1jj3'!["g

    b'."

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    62/102

    'i:!....('i'=...

    gJ'"'"'"...,....,j>.

    'J.J

    '-

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    63/102

    U.S. Patent Jut 27,1999 Sheet 6 of 14 5,929,852

    a:wI -ZWZoa..:2o( )

    C\Ico

    Copy provided by USPTO from the PIRS Image Database on 11/0612009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 43 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    64/102

    U.S. Patent

    o....r-..'I

    JuI. 27, 1999 Sheet 7 of 14 5,929,852

    Cf) z[Bvi 00 .... I -Or-.. 1-::;:':zO: "-wO .ZLL CJO I.Lc.. zw ::;:':00-0 O :::) C\JI 0'0 .... 0Cf)r-.. >w za:

    Copy provided by USPTO from the PIRS Image Database on 11/06/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 44 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    65/102

    u.s. Patent Jul. 27, 1999 Sheet 8 of 14 5,929,852

    804

    GOPHERITEM

    ARTICLE

    810

    802 / 8 0 0r---. . . . . . .-L--. .- .CVBERITEM

    806

    WEBITEM

    FIG. 8

    / ' 900

    ......._P'"""""-l,,r- 902

    904 906

    FIG. 9

    908

    Copy provided by USPTO from the PIRS Image Database on 11/06/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 45 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    66/102

    LjlJ.J

    'Co...,....."'"

    r:n=-'"'"

    ;-:=-N..........

    0118IeOe01NFIG. 10

    1018

    1016

    1020

    XTENSION

    CVBERExTENSION

    1 0 0 0 ~

    10021006"-...f- COMPONENT

    100471008,"",- BASECOMPONENT ~ - - BASEE

    ."1010

    GOPHERBROWSER I ARTICLEBROWSER1012

    r

    EBBROWSER TEXTVIEWER

    r- 1014NEWSGROUpBROWSER PICTUREVIEWER

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 46 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    67/102

    U.S. Patent Jul. 27, 1999 Sheet 10 of 14 5,929,852

    Q)Cl.Cl.c:

    (9u..

    0

    (\ J '

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    68/102

    U.S. Patent Jul. 27, 1999 Sheet 11 of 14 5,929,852

    f 1100

    ~ G O P H E R I T EHome Page

    III GOPHERITEMHappyFace

    1114

    WEBBROWSER

    o GOPHERITEMApple

    GOPHERBROWSER. . . - - - - - - - ~ 1 . " . 1 1 1 0

    ~ - - - - - - l . , . 1 1 2 0

    1124

    GOPHERITEMHome Page

    FIG.118

    Copy provided by USPTO from the PIRS Image Database on 11/06/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 48 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    69/102

    U.S. Patent Jul. 27, 1999 Sheet 12 of 14 5,929,852

    . . . - - - - - - - - - ' ' ' - 1 110GOPHERBROWSER

    1114o GOPHERITEMApple, . . - - - - - - - ......1120

    WEBBROWSER

    1124

    ~ G O P H E R I T EHome Page

    IIiI GOPHERITEMHappy Face

    ~ G O P H E R I T Efi;IlI Home Page

    1106

    1130

    GOPHERSTREAM

    FIG.11C

    Copy provided by USPTO from the PIRS Image Database on 11106/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 49 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    70/102

    U.S. Patent Jul. 27, 1999 Sheet 13 ofl4 5,929,852

    f1100

    r----------';.1110GOPHERBROWSER

    1106

    o GOPHERITEMAppleWEBBROWSER

    1124

    ~ G O P H E R I T EfI;III Home Page

    GOPHERITEMHappy Face

    GOPHERITEMHome Page

    1140

    Click Me!

    Glick me toolClick me first!

    FIG. 11 D

    Copy provided by USPTO from the PIRS Image Database on 11/06/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 50 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    71/102

    u.s. Patent JuI. 27, 1999 Sheet 14 of 14 5,929,852

    1208

    1210 .

    12

    1202START

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    72/102

    5,929,8522The Telnet service allows users to log onto computerscoupled to the networks, while the netnews protocol provides a bul le tin-boa rd serv ice to i ts subscribers.Furthermore, the various data formats of the information5 available on the Internet include JPEG images, MPEGmovies and p.Mlaw sound files.

    TWo fashionable services for accessing information overthe Internet are Gopher and the WorldMWide Web (''Web').Gopher consists of a series of Internet servers that provide10 a 'llistMoriented" interface to information available on tbenetworks; the information is displayed as menu items in ahierarchicalmanner. Included in the hierarchy of menus aredocuments, which can be displayed or saved, andsearchableindexes, which allow users to type keywords and perform15 searches.Some of the menu items displayed by Gopher are links toinformation available on other servers located on the networks. In this case, the user is presented with a list ofavailable information documents that can be opened. The

    20 opened documents may display additional lists or they maycontain various d a t a ~ t y p e s , such as pictures or text;occasionally, the opened documents may "transport" tbeuser to another computer on the Internet.The other popular information service on the Internet is25 the Web . Instead of providing a user with a hierarchicallist-orieoted view of information. the Web provides the userwith a "linked-hypertext" view. Metaphorically, the Webperceives the Internet as a vast book ofpages, eachof which

    30 : ~ ; ~ c t ~ ~ e : ~ r : x o \ ~ ~ : ~ e ~ ~ ~ e ~ r d : = : ~ t ~ ; :written in HyperText Markup Language (HTML) andWebservers transferHTML documents to each other through theHyperText Transfer Protocol (HTI'P).

    35 The Web service is essentially a means for namingsources of information on the Internet. Armed with such ageneral naming convention that spans the entire networksystem, developers are able to build information servers thatpotentially any user can access. Accordingly, Gopher40 servers, HTTPservers,FfPservers, and E--mail servers havebeen developed for the Web. Moreover, the naming convenM

    tion enables users to identify resources (such as documents)on any of these servers connected to the Internet and allowaccess to those resources.As an example, a user "traverses" the Web by followinghot items of a page displayed 00 a graphicalWeb browser.These hot items are hypertext links whose presence areindicated on the page byvisual cues, e.g., underlined words,icons or buttons. When a user follows a link (usually by50 clicking on the cue with a mouse), the browser displays thetarget pointed to by the link which, in some cases, may beanother HTML document.The Gopher and Web information services represententirelydifferent approaches to interacting with information

    55 on the Internet. One follows a listMapproach to informationthat "looks" like a telephone directory service, while theother assumes a pageMapproach analogous to a tabloid newsMpaper. However, both of these approaches include applicaMtions for enabling users to browse information available on

    60 Internet servers. Additionally, each of these applications hasa unique way of viewing and accessing the information onthe servers.Netscape Navigator eNetscape") is an example of amonolithic Web browser application that is configured to65 interact with many of the previously-described protocols,including HTTP, Gopher and FIF. When instructed toinvoke an application that uses one of these protocols,

    FIELD OF THE INVENTION

    CROSS-REFERENCE TO RELATEDAPPUCATIONS

    BACKGROUND OF THE INVENTION

    1ENCAPSULATED NETWORK ENTITYREFERENCE OFA NETWORKCOMPONENT SYSTEM

    This application is a continuation of U.S. patent application Ser. No. 08/435,880, filed May 5, 1995, now abandoned.

    This invention is related to the following copending U.S.patent applications:U.S. patent application Ser. No. 08/435,377, titledEXTENSIDLE, REPLACEABLE NETWORK COMPONENT SYSTEM;US. Pat. No. 5,784,619 issued Jul. 21, 1998, titledREPLACEABLE AND EXTENSIBLE NOTEBOOKCOMPONENT OF A NETWORK COMPONENT SYS-TEM;U.S. patent application Ser. No. 08/435,862, titledREPLACEABLE AND EXTENSIDLE LOG COMPONENT OFA NETWORK COMPONENT SYSTEM;U.S. Pat. No. 5,724,506, issued Mar. 3, 1998, titledREPLACEABLE AND EXTENSIBLE CONNECTIONDIALOG COMPONENT OF A NETWORK COMPONENT SYSTEM; andU.S. Pat. No. 5,781,189 issued Jul. 14, 1998, titled

    EMBEDDING INTERNET BROWSER/BUTTONSWITHlN COMPONENTS OF A NETWORK COMPONENT SYSTEM, each ofwhich was :filed May 5, 1995 andassigned to the assignee of the present invention.

    This invention relates generally to computer networksand, more particularly, to an architecture and tools forbuilding Internet-specific services.

    The Internet is a system of geographically distnbutedcomputer networks interconnected by computers executingnetworking protocols that allow users to interact and shareinformation over the networks. Because ofsuch w i d e ~ s p r e a dinformation sharing, the Internet has generally evolved into 45an Ilopen" system for which developers can design softwarefor performing specialized operations, or services, essentiallywithout restriction. These services are typically impleMmented in accordance with a client/server architecture,wherein the clients, e.g., per sona l computer s orworkstations, are responsible for interacting with the usersand the servers are computers configured to perform theservices as directed by the clients.

    Not surprisingly, each of the services available over theInternet is generally defined by its own networking protocol.A protocol is a set of rules governing the format andmeaning of messages or Ilpackets" exchanged over thenetworks. By implementing services in accordance with theprotocols, computers cooperate to perform variousoperations, or similar operations in various ways, for userswishing to "interact" with the networks. The services typically range from browsing or searching for informationhaving a particular data format using a particular protocol toactually acquiring information of a differentformat in accordance with a different protocol.For example, the file transfer protocol (F1P) servicefacilitates the transfer and sharing of files across the Internet.

    Copy provided by USPTO from the PIRS Image Database on 11/06/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 52 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    73/102

    5,929,8523Netscape "translates" the protocol to hypertext. This t r a n s ~lation places the user farther away from the protocoldesigned to run the application and, in some cases, actuallythwarts the user's Internet experience. Fo r example, a discussion system requiring an interactive exchange between 5participants may bebogged down by hypertext translations.The Gopher and Web services may further require additional applications to perform specific functions, such asplaying sound or viewing movies, with respect to the datatypes contained in the documents. For example, Netscape 10employs helper applications for executing applications hav-

    ing dataformats it does not"understand".Execution of thesefunctions on a computer requires interruption of processingand context switching (i.e.,savingof state) prior to invokingthe appropriate application.Thus, i f a user operating withinthe Netscape application "opens" a MPEG movie, that 15browsing application must be saved (e.g., to disk) prior toopening an appropriate :MPEG application. e.g., Sparkle,toview the image. Such an arrangement is inefficient andrather disruptive to processing operations of the computer.Typically, a computer includes an operating system and 20application software which, collectively, control the operations of the computer. The applications are preferably taskspecific and independent, e.g., a word processor applicationedi ts words , a d rawing applic ation edi ts drawings and a

    database application interacts with information storedon a 25database storage unit . Although a usercan move data fromone application to the other, such as by copying a drawinginto a word processing file, the independent applicationsmust be invoked to thereafter manipulate that data.Generally, the application program presents information 30to a user through a window of a graphical user interfacebydrawing images, graphics or text within the window region.

    The user, in tum, communica tes with the appl icat ion by"pointing" at graphical objects in the windowwith a pointerthat is controlled by a hand-operated pointing device, such 35as a mouse, or by pressing keys of a keyboard.The graphical objects typically included with eachwin-

    dow region are sizing boxes, buttons and scroll bars. Theseobjects represent user interface elements that the user canpoint atwith the pointer (or a cursor) to select or manipulate. 40For example, the user may manipulate these e lements tomove the windows around on the display screen, and changetheir sizes and appearancesso as to arrange the window ina convenient manner. When the e lements are selec tedormanipulated, the underlying appl icat ion program is 45informed. via the window environment, that control hasbeen appropriatedby the user.A menu bar is a further e xample of a user interfaceelement that provides a list of menus ava ilab le to a illier.

    Eachmenu. in turn, providesa list of command options that 50can be selectedmerely by pointing to them with the mousecontrolled pointer. That is, the commands may be issued byactua ting the mouse to move the pointer onto or near thecommand selection, and pressing and quickly releasing, i.e.,"clicldng" a button on the mouse. 55In contrast to this typical application-based computingenvironment., a software component architecture provides amodular document-based computing arrangement usingtools such as viewing editors. The key to document-basedcomputing is the compound document, i .e ., a document 60composed ofmany different types of data sharing the same:file. The types of data contained in a compound documentmay range from text. tables and graphicsto video and sound.Several editors. each designed to handle a par ticu la r datatype or format, can work on the contents of the document at 65the same time. unlike the application-based computingenvironment.

    4Since many editor s may work together on the samedocument , the compound document is apportioned intoindividual modules of content for manipUlation by theeditors. The compoundnatureof the document is realizedbyembedding these .modules within each other to c re ate adocument having a mixture of data types. The sof twarecomponent architecture provides the foundation for assem

    bling documents of differingcontents and the present invention is directed to a system for extending this capability tonetwork-oriented services.To remotelyaccess information stored on a resourceof thenetwork. the user typically invokes a service configuredtooperate in accordance with a protocol for accessing theresource. In particular, the user types an explicit destinationaddress command that includes a uniform resource locator(URL). The URL is a rather long ( approxima te ly 50character) address pointer that identifies both a networkresource and a means for accessing tha t resource. Thefol lowing is an example of a hypothetical URL addresspointer to a remote resource on a Web server:

    http://I.aall.bbb.cc/hypertext/DdddEeue/WWW/FlffffILhtmlIt is apparent tha t having to type such long dest inat ion

    address pointerscan becomequite burdensome forusers thatfrequently access information from remote resources.Therefore, itis among the objectsof thepresent inventionto simplify a user's experience on computer networkswithout sacrificing the fleXIbility afforded theuser by employingexist ing pro tocols and da ta types ava ilab le on those networks.Another object of the invention is to provide a system forusers to sea rch and access informa tion on the Internetwithout extensive understandingor knOWledge of the underlying protocol s and da ta forma ts needed to access thatinformation.Still another object of the invention is to provide userswith a simple means for remote ly accessing informationstored on resources connected to computer networks.

    SUMMARY OF TIlE INVENTIONBriefly, the invention comprises a network-oriented component system for efficiently accessing information from anetwork resource locatedon a computernetworkby creating

    an encapsulated network entity that contains a reference tothat resource. The encapsulated entity is preferably implemented as a network component stored on a computerremotely displaced from the r eferenced resou rc e. Inaddition, the encapsulated entity may be manifested as avisual object on a graphical user interface of a computerscreen. Such visual manifestation allows a user to easilymanipulate the entity in order to display the contentsof theresource on the screenor to electronically forward the entityover the network.In the illustrative embodiment of the invention, the refe rence to the network resource is pre fe rably a "poin te r" ,

    such as a uniform resource locator (URL), that identifies thenetwork address of the resource, e.g., a Gopher browserora Web page. In addition to storing the pointer, the encapsulated entity also contains information for invoking appropriate network components needed. to access the resource.Communication among the networkcomponentsis achievedthrough novel applicationprogramming interfaces (APIs)tofacilitate integrationwith an underlying software componentarchitecture. Such a cooperating architecture allows theencapsulated entity and network components to "transport"the user to the network location of the remote resource.

    Copy proVided by USPTO from th e PIRS Image Database on 11/06/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 53 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    74/102

    5 5,929,852 6hardware and software elements that provide resources orservices for use by the clients 200 to increase the efficiencyof their operations. It will be understood to those skilled inthe art that, in an alternate embodiment, the client and servermay exist on the same computer; however, for the illustrative embodiment described herein, the client and server areseparate computers.Several types of computer networks 110, including localarea networks (LANs) and wide area networks (WANs),may be employedin the system 100,ALAN is a limited areanetwork that typically consists of a transmission medium,such as coaxial cable or twisted pair, while aWAN may bea public or private telecommunications facility that inter

    connects computers widely dispersed. In the illustrative15 embodiment, the network system 100 is the Internet system

    of geographically distributed computer networks.Computers coupled to the Internet typically communicateby exchanging discrete packets of information according topredefined networking protocols. Execution of these networking protocols allow users to interact and share infor-mation across the networks.As an illustration, in response toa user's request for a particular service, the client 200 sendsan appropriate information packet to the server300, whichperforms the service and returns a result back to the client200.FIG. 2 illustrates a typical hardware configuration of aclient 200 comprising a central processing unit (CPU) 210coupled between a memory 214 and input /output (110)circuitry 218 by bidirectional buses 212 and 216. Thememory 214 typically comprises random access memory(RAM) for temporary storage of information and read onlymemory (ROM) for permanent storage of the computer'sconfiguration and basic operating commands, such as portions of an operating system (not shown). As describedfurther herein, the operating system controls the operations

    of the CPU 210 and client computer 200.The I/O circuitry 218, in turn, connects the computer tocomputer networks, such as the Internet networks 250,via abidirectional bus 222 and to cursor/pointer control devices, ,such as a keyboard224 (via cable226) and a mouse 230 (via

    cable 228). Tbe mouse 230 typically contains at least onebutton 234 operated by a user of the computer. A conventional display monitor 232 having a display screen 235 is45 also connected to I/O circuitry 218 via cable 238.A pointer(cursor) 240 is displayed on windows 244 of the screen 235and its posit ion is controllable via the mouse 230 or thekeyboard 224, as is well-known. The I/O circuit ry 218receives information, such as control and data signals, fromthe mouse 230 and keyboard 224, and provides that information to the CPU 210 for display on the screen 235 or, asdescnbed further herein, for transfer over the Internet 250.

    FIG. 3 illustrates a typical hardware configuration of aserver 300 of the network system 100. The setver 300 hasmany of the same uni ts as employed in the client 200,including a CPU 310, a memory 314 and I/O circuitry 318,each ofwbich are interconnected by bidirectional buses 3]2and 316. Also, the I/O circuitry connects the computer tocomputer networks 350 via a bidirectional bus 322. These

    60 units are configuretf to perform functions similar to tboseprovided by their corresponding units in the computer 200.maddition, the server typically includes a mass storage unit320, such as a disk drive, connected to the I/O circuitry 318via bidirectional bus 324.It is to be understood that the I/O circuits within thecomputers 200 and 300contain the necessary hardware,e.g.,buffers and adapters, needed to interface with the control

    BRIEFDESCRIPTION OF THE DRAWINGS

    DETAILED DESCRIPTION OF ILLUSTRATIVEEMBODIMBNT

    Specifically, the encapsulated entity component is anobject of the networkoriented component system that ispreferably embodied as a customized framework having aset of interconnected abstract classes. A CyberItem classdefines the encapsulated entity object which interacts with 5other objects of the network system' to remotely accessinformat ion from the referenced resource. Since theseobjects are integral elements of the cooperating componentarchitecture, any typeof encapsulated network entitymaybedevelopedwith consistent behaviors. i.e., these entities may 10be manifested as visual objects that can be distributed andmanipulated iconically.Advantageously, the inventive encapsulation techniquedescnbed herein provides a user with a simple means foraccessing information on computer networks.

    FIG. 1 is a block diagram of a network system 100comprising a collection of computer networks 110 interconnected by client computers C'clients") 200, e.g., worksta- 65tions or personal computers, and' server computers("servers") 300. The servers are typically computers having

    The above and further advantagesof the inventionmay bebetter understoodby referring to the followingdescription in 20conjunction with the accompanying drawings in which:FIG. 1 is a block diagram of a network system includinga collection of computer networks interconnected by clientand server computers;FIG. 2 is a blockdiagram of a client computer, such as a 25personal computer. on which the invention may advantageously operate;FIG. 3 is a block diagram of the server computer of FIG.

    1;FIG. 4 is a higWy scbematized blockdiagramof a layered 30component computing arrangement in accordance with theinvention;FIG. 5 is a schematic illustration software of tbe interaction of a component, a software component layer and an 35operating system of the computer of FIG. 2;FIG. 6 is a schematic illustration of the interactionbetween a component, a component layer and a windowmanager in accordance with the invention;FIG. 7 is a schematic diagram of an illustrative encapsu- 40lated network entity object in accordance with theinvention;FIG. 8 is a simplified class heirarchy diagram illustratinga base class CyberItem, and its associated subclasses, used

    to construct network component objects in accordance withthe invention;FIG. 9 is a simplified class heirarchy diagram illustratinga base class CyberStream. and its associated subclasses, inaccordance with the invention;FIG. 10 is a simplified classhierarchy diagram illustrating 50a base class CyberExtension, and its associated subclasses,in accordance with the present invention;FIGS. l lA- l lD are highly schematized diagrams illustrating the interactions between the network componentobjects, including the encapsulated network entity object of 55FIG. 7; andFIG. 12 is an illustrative flowchart of the sequence of

    steps involved in invoking, and accessing, information froma referenced network resource.

    CODV provided by USPTO from the PIRS Image Database on 11/06/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 54 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    75/102

    5,929,8527

    devices, the display monitor, the mass storage unit and thenetwork. Moreover, the operating system includes the necessary software drivers to control, e.g., network adapterswithin the I/O circuitswhen performing I/O operations, suchas the transfer of data packets between the client 200 andserver 300.The computers are preferably personal computers of the

    Macintosh series of computers sold by Apple ComputerInc., although the invention may also be practiced in thecontext of other types of computers, including the IBMseries of computerssold by InternationalBusiness MachinesCorp. These computers have resident thereon, and are c o n ~trolled and coordinated by, operating system software, suchas the Apple System 7, IBM OS2, or the MicrosoftWindows@> operating systems.As Doted, the present invention is based on a modulardocument computing arrangement as provided by an underlying software component architecture, rather than the typical application-based environment of prior computing s y s ~tems. FIG. 4 is a higWy schematized diagram of thehardware and software elements of a layered componentcomputing arrangement 400 that includes the novelnetwork-oriented component system of the invention.At the

    lowest level there is the computer hardware, shown as layer410. Interfacing with the hardware is a conventional operating system layer 420 that includes a window manager. agraphic system, a file system and n e t w o r k ~ s p e c i f i cinterfacing, such as a TCP/IP protocol stack and an Appletalk protocol stack.The software component architecture is preferably i m p l e ~mented as a component architecture layer 430.Although itis shown as overlaying the operating system 420, the component architecture layer 430 is actually independent of theoperating system and, more precisely, resides side-by-sidewith the operating system. This relationship allows thecomponent architecture to exist on multiple platforms thatemploy different operating systems.In accordance with the present invention, a novelnetwork-oriented component layer 450 contains the underlying technology for creating encapsulated entity compo

    nents that containreferences to netwoIk resources located oncomputer networks. As descnbed further herein, communication among these components is achieved through novelapplication programming interfaces (APIs) to ensure integration with the underlying component architecture layer430. These novel APIs are preferably delivered in the formof objects in a class hierarchy.It should be noted that the network component layer 450may operate with any existing system-wide componentarchitecture, such as the Object Linking and Embedding(OLE) architecture developed by the Microsoft Corporation;however, in the illustrative embodiment, the componentarchitecture is preferably OpenDoc, the vendor-neutral,open standard for compound documents developed by,among others, Apple Computer, Inc.Using tools such as viewing editors, the component

    architecture layer 430 creates a compound document c o m ~posed of data having different types and formats. Eachdiffering data type and format is contained in a fundamentalunit called a computing part or, more generally, a ~ ' c o m p o -nent" 460 comprised of a viewing editor along with the datacontent. An example of the computing component 460 mayinclude a MacDraw component. The editor, on the otherhand, is analogous to an application program in a conventional computer. That is, the editor is a software componentwhich provides the necessary functionality to display a

    8component's contents and, where appropriate, present a userinterface for modifying those contents. Additionally, theeditor may include menuS, controls and other user interfaceelements. The network component layer 450 extends the5 functionality oftbe underlying component architecture layer430 by defining n e t w o r k ~ o r i e n t e d components 480 thatseamlessly integrate with these components 460 to providebasic tools for efficiently accessing information from net-work reSources located on, e.g., servers coupled to the10 computer networks.FIG. 4 also illustrates the relationship of applications 490to the elements of the document computing arrangement400. Although they reside in the same ''user space" as thecomponents 460 and network components 480, the applica-tions 490 do not interact with these elements and, thus,15 interface directly to the operatingsystem layer420. Becausethey are designed as monolithic, autonomous modules,applications (such as previous Internet browsers) often donot even interact among themselves. In contrast, the c o m ~ponents of the arrangement 400 are designed to work20 together and communicate via the common componentarchitecture layer 430 or, in the case of the networkcomponents, via the novel network component layer 450.Specifically, the invention features the provision of thenetwork-oriented component system which, when invoked,25 causes actions to take place that enhance the abilityof a 1L')erto interact with the computer to create encapsulated entitiesthat contain references to network resources located oncomputer networks, such as the Internet. The encapsulatedentities are manifested as visual objects to a user via a30 window environment, such as the graphical user interfaceprovided by System 7 or Windows, that is preferably dis-played on the screen 235 (FIG. 2) as a graphical display tofacilitate interactions between the user and the computer,such as the client200. This behavior of the system is brought35 about by the interaction of the network components with aseries of system software routines associated with the oper-ating system 420. These system routines, in turn, interactwith the component architecture layer 430 to create thewindows and graphical user interface elements, as described40 further herein.The window environment is generally part of the o p e r a t ~ing systemsoftware 420 that includes a collection of utilityprograms for controlling the operation of the computer 200.The operating system, in turn, interacts with the components45 to provide higher level functionality, inclUding a directinterface with the user. Acomponentmakes use of operatingsystemfunctions by issuing a seriesof task commands to theoperating system via the networkcomponent layer 450 or, asis typically the case, through the component architecture50 layer 430. The operating system 420 then performs therequested task. For example, the component may requestthat a software driver of the operating system initiate trans-fer of a data packet over the networks 250 or that theoperating system display certain information on a window55 for presentation to the user.FIG. 5 is a schematic illustration of the interaction of acomponent 502, software component layer 506 and an

    operating system 510 of a computer500,which is similar to,and has equivalent elements of, the client computer 200 of60 FIG. 2. As noted, the networkcomponent layer 450 (FIG. 4)is integrated with the component architecture layer 430 toprovide a cooperating architecture that allows any encapsulated entity and network component to "transport" the userto tbe network location of a remote resource; accordingly,65 for purposes of the present discussion, the layers 430 and450 may be treated as a single software component layer506.

    Copy provided by USPTO from the PIRS Image Database on 11/06/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 55 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    76/102

    5,929,8529The component 502, component layer 506 and operatingsystem 510 interact to control and coordinate the operations

    of the computer 500 and their interaction is illustratedschematically by a rrows 504 and 508. In o rder to displayinformationon a screendisplay 535,tbe component 502 and 5component layer506 cooperate to generate and send displaycommands to a window manager 514 of the operatingsystem 510. The window manager 514 stores'informationdirectly (via arrow 516) into a screen buffer 520.The window manager 514 is a system software routine 10that is generally responsible for managing windows544 thatthe user views during operation of the network componentsystem. That is, it is generally the task of the windowmanager to keep trackof the location and size ofthe window

    and window areas which must be drawn and redrawn in 15connect ion with the network component system of thepresent invention.Under control of various hardware and software in thesystem, the contentsof the screenbuffer 520 are read outofthebuffer and provided, as indicated schematically by arrow 20522, to a display adapter 526. The display adapter containshardware and software (sometimes in the form of firmware)which converts the information in the screen buffer 520 to aform which can be used to dr ive a display screen 535 of amonitor 532. The monitor 532 is connected to display 25adapter 526 by cable 528.Similarly, in order to transfer information as a packetoverthe computer networks, the component 502 and component

    layer 506 cooperate to generate and send networkcommands, such as remote procedure calls, to a network- 30specific interface 540 of the operating system 510. Thenetwork interface comprises system software routines,suchas "stub" procedure software and protocol stacks, that aregenerally responsible for formating the information into apredetermined packet format according to the specific net- 35work protocol used, e.g., TCP/IP or Apple-talk protocol.Specifically, the network interface 540 stores the packet

    d irec tly (via a rrow 556) into a network buffe r 560. Undercontrol of th e hardware aod software in the sys tem, the 40contents of the network buffer560 areprovided, as indicatedschematicallyby arrow 562, to a network adapter 566.Thenetwork adapter incorporates the software and hardware,i .e ., e lectrical and mechanical interchange circuits andcharacteristics, needed to interface with the particular com- 45puter networks 550. The adapter 566 is connected to thecomputer networks 550 by cable 568.In a preferredembodiment, the invention described hereinis implemented in an object-oriented programming (OOP)language, such as C++, using System Object Model (SOM) 50technology and OOP techniques.

    The C++ and SOM languages are w e l l ~ k n o w n and manyarticles and texts are available which describe the languagesin detail. In addition, C++ andSOM compilers are commercially available from several vendors. Accordingly, for rea- 55sons of brevity, the details of the C++ and SaM languagesand the operations of their compilers will not be discussedfurther in detail herein.As will be understood by those skilled in the art, OOPtechniques involve the definition, creation, use and destruc- 60tion of "objects". These objects are software entitiescom-prising data e lements and routines, or functions, whichmanipulate the data elements.The data and related functionsare treated by the sof tware as an ent ity tba t canbe created,used and deleted as i f it were a single item. Together, the data 65and functions enable objects to model virtually any realworld ent ity in terms of its characteristics, which can be

    10represented by the data elements, and its behavior, whichcan be represented by itsdata manipulationfunctions.In thisway, objects can model concrete things like computers,whi le also model ing abstrac t concepts l ike numbers orgeometrical designs.Objects are defined by creating "classes" which are notobjects themselves, but which act as templates that instruct

    the compilerhow to construct an actualobject Aclassmay,for example, specify the number and typeof data variablesand the steps involved in the functionswhich manipulatethedata.An object is actually createdin the program by meansof a special function called a "constructor" which uses thecorresponding class definition and additional information,such as arguments provided during object creation, to construct the object. Likewise objects are destroyedby a specialfunc tion cal led a "dest ructor". Objec ts may be used bymanipulating their data and invoking their functions.The principle benefits of OOP techniques arise out ofthree basic principles: encapsulation, polymorphism andinheritance. Specifically, objects can be designed to hide,orencapsulate, all, or a portion of, i ts internal data structureand internal functions. More specifically, during programdesign, a program developer can define objectsin which all

    or some of the data variables and all or some of the relatedfunctions are considered 'J1rivate" or for u se only by theobject itself. Other data or functions can be declared "publie" or available for use by other programs. Access to theprivate variables by other programs can be controlled bydef in ing public funct ions for an objec t which access theobject's private data. The public functions form a controlledand consistent interface between the private data and thel'outside" world. Any attempt to write program code whichdirectly accesses the private variables causes the compilertogenerate an error during program compilation which errorstops the compi la tion process and prevents the programfrom being run.Polymorphism is a concept which a llows objec ts andfunctions that have the same overall format, but that workwith different data, to function differently in order to produce consisten t resul ts . Inheri tance, on the other hand,

    allows program developers to easily reuse pre-existing programs and to avoid creat ing sof tware from scratch . Theprinciple of inheritance allows a software developer todeclare classes (and the objects which are later created fromthem) as related. Specifically, classesmay be designated assubclasses of other base classes. A subclass llinherits" andhas access to a ll of the pUblic functions of it s base classesjust as i f these funct ions appeared in the subclass.Alternatively, a subclass can override some or all of itsinherited functions ormay modify someor all of its inheritedfunctions merely by defining a new function with the sameform (overriding or modification does not alter the functionin thebase class, but merely modifies the useof the functionin the subclass). The creation of a new subclass which hassome of the functionality (with selective modification) ofanother class allowssoftware developersto easily customizeexisting code to meet their particular needs.In accordance with the present invention, the component502 and windows 544 are ltobjects" createdby the compo

    nent layer 506 and the window manager 514, respectively,the latter of which may be an Object-oriented program.Interaction between a component, component layer and awindow manager is illustrated in greater detail in FIG. 6.In general, the component layer 606 interfaces with thewindow manager 614 by creating and manipulating objects.The window manage r i tsel f may be an object which is

    Copy provided by USPTO from the PIRS Image Database on 11/0612009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 56 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    77/102

    5,929,85211

    created when the operating system is started. Specifically,the component layer creates window objects 630 that causethe window manager to create associated windows on thedisplay screen. This is shown schematically by an arrow608. In addition. the component layer 606 creates individual 5graphic interface objects 650 that are stored in each windowobject 630. as shown schematically by arrows 612 and 652.Since many graphic interface objects may be created inorder to display many interface elements OD the displayscreen, the window object 630 communicates with the 10window manager by means of a sequence of c4"awingcommands issued from the window object to the windowmanager 614, as illustrated by arrow 632.As noted, the component layer 606 functions to embedcomponents within one another to form a compound docu- 15ment having mixed data types aod formats. Many differentviewing editors maywork togetherto display, or modify, thedata contents of the document. In order to direct keystrokesand mouse events initiated by a user to the proper components and editors, the component layer 606 includes an 20arbitrator 616 and a dispatcher 626.The dispatcher is an object that communicates with theoperating system 610 to identify the correct viewing editor

    660, while the arbitrator is an object that informs thedispatcher as to which editor "owns" the stream of key- 25strokes or mouse events. Specifically, the dispatcher 626receives these "human-interface" events from the operatingsystem 610 (as shown schematically by arrow 628) anddelivers them to the correct viewing editor 660 via arrow662.Theviewingeditor 660 thenmodifies ordisplays, either 30visually or acoustically, the contents of the data types.Although OOPoffers significant improvements overotherprogramming concepts, software development still requiressignificant outlays of time and effort, especially i f no pre- 35ex ist ing so ftwar e is available for modification.Consequently, a prior art approach has been to provide adeveloper with a set of predefined. interconnected classeswhich create a set of objects and additional miscellaneousroutines that are all directed to performing commonly- 40encountered tasks in a particular environment. Such pre

    defined classes and libraries are typically called "frameworks" and essentially provide a pre-fabricated structure fora working document.For example, a framework for a user interface might 45provide a set of predefined graphic interface objects whichcreate windows, scroll bars, menus, etc. and provide thesupport and ."default" behavior for these interface objects.Since frameworks are based on object-oriented techniques,the predefined classes can be used as base classes and the 50built-in default behavior can be inherited by developerdefined subclasses and either modified or overridden toallow developers to e),.1end the framework and create customized solutions in a particular area of expertise. Thisobject-oriented approach provides a major advantage over 55traditional programmingsince the programmer is not changing the original program, but rather extending the capabili

    ties of that original program. In addition, developers are notblindly working through layers of code because the framework provides architectural guidance and modeling and, at 60the same time, frees the developers to supplyspecific actionsunique to the problem domain.There are many kindsof frameworks available,dependingon the level of the system involved and the kind of problemto be solved. The types offrameworks range from high-level 65frameworks that assist in developing a user interface, tolower-level frameworks that provide basic system software

    12services such as communications, printing, file systemssupport, graphics, etc. Commercial examples of applicationtype frameworks include MacApp (Apple), Bedrock(Syman'ec), OWL (Borland), NeXT Step App Kit (NeXl)and Smalltalk-80 MVC (parcPlace).While the framework approach utilizes all the principlesof encapsulation, polymorphism, and inheritance in the

    object layer. and is a substantial improvement over otherprogramming techniques, there are difficulties which arise.These difficulties are caused by the fact that i t is easy fordevelopers to reuse their own objects, but it is difficult forthe developers to use objects generated by other programs.Further, frameworks generally consist of one ormore object"layers" on top of a monolithic operating system and evenwith the flexibility of the object layer, i t is still oftennecessary to directly interactwith the underlying system bymeans of awkward procedure calIs.In the sameway that a framework provides the developerwith prefab functionality for a document. a systemframework, such as that included in the preferredembodiment, can provide a prefab functionality for systemlevel services which developers can modify or override tocreate customized solutions, thereby avoiding the awkward

    procedural calls necessarywith the prior art frameworks. Forexample, consider a customizable network interface frame-work which can provide the foundation for browsing andaccessing information over a computer network. A softwaredeveloper who needed these capabilities would ordinarilyhave to write specific routines to provide them. To do thiswith a framework, the developer only needs to supply thecharacteristic and behavior of the finished output, wbile theframework provides the actual routines which perform thetasks.A preferredembodiment takes the concept of frameworksand applies it throughout the entire system, including thedocument, component, component layer and the operatingsystem. For the commercial or corporate developer, systemsintegrator, or OEM, this means all of the advantages thathave been illustrated for a framework, such asMacApp, canbe leveraged not only at the application level for things such

    as text and graphical user interfaces, but also at the systemlevel for such services as printing, graphics, multi-media,file systems and, as described herein, network-specificoperations.Referring again to FIG. 6, the window object 630 and thegraphic interface object 650 are elementsof a graphical userinterface of a networkcomponent system having a customizable framework for greatly enhancing the ability of a userto efficiently access information from a network resourceoncomputer networks by creating an encapsulated entity thatcontains a reference to that resource. The encapsulatedentity-is preferably implemented as a network component of thesystem and stored as a visual object, e.g., an icon, for displayon a graphical user interface. Such visual display allows auser to easily manipulate the entity component to display thecontents of the resource on a computer screen or to elec-

    tronically forward the entity over the networks.Furthermore, the reference to the network resource is apointer that identifies the network address of the resource,e.g. a Gopher browser, a Web page or an E-mail message.FIG. 7 is a schematic diagram of an illustrative encapSUlatednetwork entity object 700 containing a pointer 710. In oneembodiment of the invention, the pointermay be a uniformresource locator (URL) having a first portion 712 thatidentifies the particular network resource and a secondportion 114 that specifies the means for accessing that

    Copy provided by USPTO from the PIRS Image Database on 11/06/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 57 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    78/102

    5,929,85213

    resource. More specifically, the URLis a string of approXl:-mately 50 characters that describes the protocol used toaddress the target resource, the server on which the resourceresides. the path to the reSOurce and the resource filename.It is to be understood, however, that other representationsofa l 'pointer" are included within the principles of theinvention, e.g., a Post Office Protocol (POP) account andmessage identification (ill).In addition to storing the pointer, the encapsulated entityalso contains information 720 for invoking appropriatenetwork components needed to access the resource. Communication among these network components is achievedthrough novel application programming interfaces (APIs).TheseAPIs are preferably delivered in the form ofobjects ina class hierarchy that is extensible so that developers cancreate newcomponents. From an implementationviewpoint,the objec ts c an be subclassed and can inherit from baseclasses to build customized components that allow userstosee different kinds of data using different kinds of protocols,or to create components that function differently from existing components.In accordance with the invention, the customized framewwork has a set of interconnected abstract classesfor defining

    network-oriented objectsused to build the customized network component s. These abstract c lasses inc ludeCyberItem, CyberStream and CyberExtension and theobjec ts they de fine a re u sed to bui ld the novel networkcomponents. A description of these abstract classes is provided in copending and commonly assigned U.S. paten tapplication titled Extensible, Replaceable Network Component System, filedMay 5, 1995, which application is incorporated by reference as though fully set forth herein.Specifically, the Cyberltem class defines the~ n c a p s u l a t e dentity object which interacts with objects defined by theother abstract classes of the network system to 'I transport"

    the user to the n etwork location, i.e., remote ly accessinformation from the referenced resource and display thatinformation to the user at the computer. Since these objectsare integral elements of the cooperating componentarchitecture, any type of encapsulated networkentitymay bedeveloped with consistent behaviors, i.e., these entities maybe manifested as visual objects that can be distributed andmanipulated iconically.FIG. 8 illustrates a simplified class hierarchy diagram 800

    of the base c la ss Cybe rI tem 802 used to construct theencapsulated network entity component object 602. Inaccordance with the illustrative embodiment, subclassesofthe Cybe rlt em ba se class a re used to const ruct var iousnetwork component objects configured to provide suchservices for the novel network-oriented component system.For example, the subclass GopherItem 804 is derived fromthe CyberItem class 802 and encapsulates a network entitycomponent object representing a l'thing in Gopher space",such as a Gopher directory.Since each of the classesused to construct these networkcomponent objects are subclasses of the CyberItem base

    class, each class inherits the functional operators and methods that are ava il ab le from tha t base class. Accordingly,methods associated with the CyberItem base class for, e .g.,instructing an object to open itself, are assumed by thesubclasses to a llow the network components to displayCyberItem objects in a consistent manner.In some instances, a CyberItem objectmay needto spawna CyberStream object in order to obtain the actua l data forthe object it represents. FIG. 9 illustrates a simplified classhierarchy diagram 900 of the base class CyberStream 902

    14which is an abstraction that serves as an API between acomponent configured to display a particular data formatand the method for obtaining the actual data. Specifically, aCyberStream object contains the software commands nec-

    5 essary to create a "datastream" for transfering informationfrom one object to another. According to the invention, aGopherStream subclass 904 i s de rived from the CyberStream base c lass 902 and encapsula tes a network objectthat implements the Gopher protocol.10 FIG. 10 is a simplified class hierarchy diagram 1000 ofthe base class CyberExtension 1002 which represents additional behaviors provided to componentsof the underlyingsoftware component architecture. For example, CyberExtension objects add functionality to, andextend the APIs of,15 existing componentsso that they may communicate with thenovel network components, such as the encapsulated entityobjects. As a resul t, the CyberExtension base c lass 1002operates in connection with a Component base class 1006through their respective subclassesBaseExtension1004 and20 BaseComponent 1008.

    CyberExtension objects are used by components tbatdisplay the contents of CyberItem objects; this includesbrowser-like components, such as a Gopher browseror Webbrowser, alongwith viewer-like components, such as JPEG,25 MPEG or text viewers. The CyberExtension objects alsokeep trackof the CyberItem objectswhich these componentsare responsible for displaying. In accordance with theinvention, the class GopherBrowser 1010 may be use d toconstruct a Gopher-like network browsing component and30 the class WebBrowser 1012 may be used to construct aWeb-like network browsing component.

    FIGS. llA-llD are highly schematized diagrams illus-trating the interactions between the novel network-orientedcomponents, including the encapsulated (CyberItem) n e t ~35 work entity component accordingto the invention. It is to beunderstood thatthe components described herein are objectsconstructed from the interconnected abstract classes. Ingeneral, a user has "double clicked"onan icon of a graphicaluscr interface 1100 displayed on a computer screen. The40 icon represents, e .g ., a Gopher d irec tory displayed in aGopher browser application. Initially, a GopherBrowsercomponent1110 displays two icons representingCyberItemcomponents, the icons labeled (GopherItem) Happy Face1104 and (Gopherltem) Home Page 1106. These latter45 components represent the contents of a Gopher directorylabeled (Gopherltem) Apple 1ll4.

    In F IG. 1lA, the l ef t s ide of the diagram illustrates aGopherBrowser component 1110 that is displayed on thecomputer screen, i .e ., the r ight s ide of the diagram. The50 GopherBrowser component has a CyberExtension component1112 which keeps trackof the GopherItem components.When the user double clickson the Home Page GopherItemicon1106, the GopherBrowser component1110 receives thisevent andissuesa call to an "Open"method of a Home Page55 GopherItem component; this call instructs the GopherItemcomponent 1106 to open itself.

    Specifically, and referring to FIG. 11B, the GopherItemcomponent1106 createsa componentof the appropriate typeto display itself. For this example, the GopherItem prefer-

    60 ably creates a WebBrowser component1120. Once created,the WebBrowser component further creates a CyberExtension component 1122 for storing the Home Page GopherItem component (now shown at 1124). In accordance withthe invention, the Home Page GopherItem component is a65 network entity containing a pointer that points to the n e t ~work addressof a Gopherserver storing the appropriateWebpage.

    Copy provided by USPTO from the PIRS Image Database on 11/06/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 58 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    79/102

    5,929,852

    65

    50

    15In FIG. l iC, the CyberExtension component 1122 thennotifies the WebBrowser component 1120 that it has beenassigned a GopherItem component 1124 to display. TheWebBrowser component 1120 calls a method CreateCyberStream of the GopherItem to create a GopherStream com- 5ponent 1130 for downloading the appropriate data.Thereafter, the WebBrowser component 1120 begins asy-

    chronously downloading an HTML document from theappropriate Gopher server (not shown).Control of the execution of this process tben returns to the 10GopberItemcomponent 1124 in FIG. lID. This component,in tum, issues a call to an Open method of the WebBrowsercomponent 1120, which causes the downloaded HTMLdocument to appear on thescreen (now shown at 1140). Fora furtherunderstandingof the invention, FIG. 12provides an 15illustrative flowchart 1200 of the sequence of steps involvedin invoking, and accessing, information from a referencednetwork resource, as described above.In summary, the network-oriented component systemprovides a customizable framework that enables a user to 20create an encapsulated entity containing a reference to anetwork resource on a computer network. Advantageously,the inventive encapsulation technique allows a user tosimply manipulate visual objects when accessing informationon the network. Insteadof having to type the destination 2Saddress of a resource, the user can merely "drag and drop"the icon associated with entity anywhere on the graphicaluser interface. When the user "double clicks" on the icon,the entity opens up in a window anddisplays the contents ofthe resource at that network location. Since the address is 30encapsulated within the network reference entity, the userdoes not have to labor with typing of the cumbersomecharacter string.While there has been shown and described an illustrative 35embodiment for implementing an extensible and replaceablenetwork component system, it is to be understood thatvarious other adaptations and modifications may be madewithin the spirit and scope of the invention. For example,additional system software routines may be used when 40implementing the invention in various applications. These

    additional system routines include dynamic link libraries(DLL), which are program files containing collections ofwindow environment and networking functions designed toperform specific classes of operations. These functions are 45invoked as needed by the software component layer toperform the desired operations. Specifically, DLis, whichare generally well-known, may be used to interact with thecomponent layer and windowmanager to provide networkspecific components and functions.The foregoing description has been directed to specificembodiments of this invention. Itwillbe apparent, however,that other variations and modifications may be made to thedescribed embodiments, with the attainment of some or allof their advantages. Therefore, it is the object of the 5Sappended claims to cover all such variations and modifications as come within the true spirit and s.cope of the

    invention.What is claimed is:1. A method of efficiently accessing information from a 60network resource located on a computer networkfor displayon a computer coupled to the network, the network resourcehaving one or more associated data types, each data typebeing accessible by a corresponding o b j e c t ~ o r i e n t e d software component, the method comprising the steps of:defining at least one network component that integratesthe o b j e c t ~ o r i e n t e d software components needed to

    16access the one or more data types associated with thenetwork resource;creating an encapsulated entity component containing areference to a location of the network resource on thecomputer network, the encapsulated entity componentalso identifying the at least one network oomponentthat was defined for the network resource;storing the encapsulated entity component as a visualobject on the computer;in response to manipulation of the visual object with apointing device, displaying the contents of the networkresource on a screen of the computer by invoking theobject-oriented software components integrated by theat least one identified network component2. The method of claim 1 wherein the step of displayingcomprises the step ofinvoking a fir.st networkcomponent fordisplaying the contents of the referenced network resourceon the screen, the first network component comprisiilg abrowsing component.3. The method of claim 2 wherein the step of displayingfurther comprises the step of invoking a second networkcomponent for transfering the contents of the referencednetworkresource to the first networkcomponent, the second

    network component comprising a data stream component.4. The method of claim 3 further comprising the step of.creatingobjects for communication among the encapsulatedentity and network components through application pro-gramming interfaces.5. The method of claim 4 wherein the step of creatingcomprises the step of constructing the encapsulated entitycomponent from an Item object defined by an Item objectclass.6. The method of claim 5 wherein the step of creatingcomprises the step of spawning a Stream object from theItem object, the Stream object representing the data stream.7. Apparatus for efficiently accessing information from anetwork resource located on a computer network for displayon a computer coupled to the network, the network resourcehaving one or more associated data types, each data typebeing accessible by a corresponding object-oriented s o f t ~ware component, the apparatus comprising:an object-orientedsoftware component architecture layerconfigured to define at least one network componentthat integrates the object.oriented software componentsneeded to access the one ormore data types associatedwith the network resource; andan encapsulated network entity component cooperatingwith the component architecture layer and containingareference to the network resource and an identifier forthe at least one networkcomponent thatwas defined forthe network resource wherein, the encapsulated net-work entity component is manifested as visual objecton a display screen of the computer and furtherwherein, the encapsulated network entity component isadapted for manipulation by a pointing device of thecomputer to display contents of the network resourceon the screen by invoking the object-oriented softwarecomponents integrated by the at least one identifiednetwork component.8. The apparatus of claim 7 further comprising:

    an operatingsysteminterfacingwith the component archi-tecture layer to control the operations of the computer;anda network component layer coupled to the componentarchitecture layer to form a cooperating componentcomputing arrangement.

    Copy provided by USPTO from the PIRS Image Database on 11/06/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 59 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    80/102

    175,929,852

    18

    * ** *

    means for storing the encapsulated entity component as avisual object on the computer; and

    means, responsive to manipulation of the visual objectwith a pointing device, for displaying contents of thenetwork resource on a screen of the computer byinvoking the object-oriented software components integrated by the at least one identified network component.

    16. The apparatus of claim 15 where in the means fordisplaying comprises means for invoking a first networkcomponent for displaying the contents of the referencednetwork resource on the screen, the first network componentcomprising a broWsing component.

    17. The apparatus of claim 16 wherein the means fordisplaying further comprises means for invoking a secondnetwork component for transfering the contents of thereferenced network resource to the first network component,the second network component comprising a data streamcomponent.

    18. The apparatus of claim 17 further c ~ m p r i s i n g meansfor creating objects for communication among the encapsulated entity and network components through application

    25 programming interfaces.19. The apparatus of claim 18 wherein the means forcreating comprises means for constructing the encapsulatedentity component from an Item objected defined by an Itemobject class.20. The apparatus of claim 19 wherein the means forcreating comprises means for spawning a Stream objectfrom the Item object, theStream object representing the datastream.

    9. The apparatus of claim 8 wherein the cooperat ingcomponent computing arrangement generates the e n c a p s u ~lated network entity. .10. The apparatus of claim 9 wherein the reference to thenetwork resource is a pointer that identifies the address of 5the network resource on a computer network.11. The apparatus of 'claim 10 wherein the pointer is a

    uniform resource locator.12. The apparatus of claim 11 wherein the uniformresource locator has a first portion that identifies the network 10resource and a second portion that specif ies a means foraccessing that resource.13. The apparatus of claim 11 wherein the uniformresource locator is a characterstring that descnbes a p r o t o ~col used to address the network resource, a server on which 15the resource resides, a path to tbe resource and a resourcefilename.14. The apparatusof claim lOwberein the pointer is apostoffice protocol account.15.Apparatus for efficiently accessinginformation from a 20network resource locatedon a computernetwork for displayon a computer coupled to thenetwork, the network resourcehaving one or more associated data types, each data typebeing accessible by a corresponding object-oriented s o f t ~ware component, the apparatus comprising:means for defining at least one network component thatintegrates the object-oriented software componentsneeded to access the one or more data types associatedwith the network resource;

    means for creat ing an encapsulated ent ity component 30containing a reference to a locat ion of the networkresource on the computer network, the encapsulatedentity component also iden tifying the at l east onenetwork component that was defined for the networkresource;

    Copy provided by USPTO from the PIRS Image Database on 11/06/2009

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 60 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    81/102

    "

    _,c_ ,"

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 61 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    82/102

    PTO-1683(Rev. 7-96)

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 62 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    83/102

    EXHIBIT J

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 63 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    84/102

    U.S PATENT 5915131

    ISSUE DATE June 22 1999

    67OO74

    FSE QjEtjUNITED STATES DEPARTMENT OF COMMERCE

    United States Patent and Trademark Office

    November 16 2007

    THIS IS TO CERTIFY THAT ANNEXED HERETO IS TRUE COPY FROM

    THE RECORDS OF THIS OFFICE OF

    By Authority of the

    Under Secretary of Commerce for Intellectual Propertyand Director of the United States Patent and Trademark Office

    SWAIN

    Certifying Officer

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 64 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    85/102

    United States Patent

    Knight Ct al

    liii 1 11 11 1 11 11 1 11 11 1 11 11 1 11 11 1 11 11 1 11 11 11111 111111111 11111 liii

    US005915131A

    Patent Number 5915131

    Date of Patent Jun 22 1999

    METHOD AND APPARATUS FOR

    HANDLING 110 REQUESTS UTILIZINGSEPARATE PROGRAMMING INTERFACES

    TO ACCESS SEPARATE 110 SERVICES

    Inventors Holly Knight La Honda Carl

    Sutton Palo Alto Wayne

    Meretsky Los Altos Alan MimmsSan Jose all of Calif

    Assignee Apple Computer Inc CupertinoCalif

    Appl No 08/435677

    Filed May 1995

    lilt Cl.6 GO6F 9/40 GO6F 13/14

    U.S Cl 3 95 /8 92 3 95 /6 82 3 95 /8 28

    3 95 /7 02 7 07 /1 04 3 45 /3 33

    Field of Search 395/828 702

    395/834 200.2 892 682 309 345/333

    707/104

    References Cited

    4593352

    4727537

    4908859

    4982325

    5129086

    5148527

    5197143

    5430845

    5491813

    5513365

    5535416

    5537466

    5553245 911996 Su et 395/284

    5572675 11/1996 Bergier 395/200.2

    OTHER PUBLICATIONS

    Form et entitled An I/O System for Mach 3.0Proceedings of the Usenix Mach Symposium 2022 Nov1991 Monterey CA US 2022 Nov 1991 pp 163176Steve Lemon and Kennan Rossi entitled An Object Oriented Device Driver Model Digest of Papers Compcon95 Technologies for the information Superhighway 59Mar 1995 San Francisco CA USA pp 360366Glenn Andert entitled Object Frameworks in the Taligent

    OS Intellectual Leverage Digest of Papers of the SpringComputer SOCI International Conference Compcon SanFrancisco Feb 28Mar 1994 Feb 24 1994 Institute ofElectrical and Electronics Engineers pp 112121

    Hu Interconnecting electronic mail networks Gatewaysand translation

    strategies are proposed for backbone net

    works to interchange incompatible electronic documents on

    multivendor networks Data Communications 128 vol

    17 No 1 0 S ep 1988

    Knibbe IETFs Resource Reservation Protocol to facilitate

    mixed voice data and video nets Network World 51Apr 24 1995

    Primary ExaminerThomas Lee

    Assistant ExaminerRehana Perveen

    Attorney Agent or FinnBlakely Sokoloff Taylor

    Zafman

    ABSTRACT

    computer system handling multiple applications wherein

    groups of I/O services are accessible through separate appli

    cation programming interfaces Each application has multiple application programming interfaces by which to access

    different families of I/O services such as I/O devices

    20 Claims Drawing Sheets

    U.S PAFENT DOCUMENTS

    6/1986

    2/1988

    3/1990

    1/1991

    7/1992

    9/1992

    3/1993

    7/1995

    2/1996

    4/1996

    7/1996

    7/1996

    Caste et 364/200

    Nichols 370/85

    Bennett et 380/10

    Tignor et 364/200

    Coyle Jr et 395/650

    Basso et 395/325

    Lary et 395/425

    Rimmer et 395/275

    Bondy et 395/500

    Cook et 395/800

    Feeney et 395/834

    Taylor et 379/201

    MODE WORLD

    KERNEL WORLD

    208

    Copy provided by IJSPTO from the PIRS I ma ge D at ab as e o n 1 1/ 15 /2 00 7

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 65 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    86/102

    TO OTHER

    COMPONENTS

    FROM I/O

    INTERFACE

    140

    CLOCKGENERATOR

    FIG.1

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 66 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    87/102

    U.S Patent Jun 22 1999 Sheet of 5915131

    208

    FIG.2

    USER MODE WORLD

    KERNELWORLD

    BLOCK

    STORAGE

    FPI SERVER

    BLOCKFILE

    MANAGER

    FAMILY

    HFS

    FILE

    SYSTEM

    SCSI

    MANAGER

    FAMILYFAMILY

    DISK

    DRIVER

    Copy p ro vide d b y USPTO from the PIRS Image Database on 11/15/2007

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 67 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    88/102

    U.S Patent Jun 22 1999 Sheet of 5915131

    APPLICATION 302

    FAMILY

    PROGRAMMING

    INTERFACE

    301

    USER MODE WORLD

    KERNEL MESSAGE KERNEL WORLD

    FPI SERVER

    304

    PROCEDURE CALL

    PROCEDURE CALL

    PLUG-IN

    307

    FIG.3

    PLUG-IN

    PROGRAMMING

    INTERFACE

    306

    KERNEL MESSAGE

    FAMILY

    305

    Copy p ro vide d b y IJSPTO from the PIRS Image Database on 11/15/2007

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 68 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    89/102

    U.S Patent

    401

    Jun 22 1999 Sheet of 5915131

    WORLD

    FPI

    SERVER

    408

    WORLD

    FPI

    SERVER

    410

    FAMILY

    IMPLEMEN

    TATION

    414

    FAMILY

    403

    TATION

    416

    FIG.4

    Copy p ro vide d b y USPTO from the PIRS Image Database on 11/15/2007

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 69 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    90/102

    U.S Patent Jun 22 1999 Sheet of 5915131

    FIG

    MODEWORLD

    KERNEL WORLD

    502

    504

    Copy p ro vide d b y USPTO from the PIRS Imaqe Database on 11/15/2007

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 70 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    91/102

    U.S Patent Jun 22 1999 Sheet of 5915131

    601 602

    FIG.6

    Copy p ro vide d b y USPTO from the PIRS Image Database on 11/15/2007

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 71 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    92/102

    U.S Patent Jun 22 1999 Sheet of 5915131

    APPLICATION 710

    711

    USER MODE WORLD

    KERNEL WORLD

    703STR EAMS

    WORLD

    PROTOCOL

    PROTOCOL

    PROTOCOL

    NETWORK

    DEVICE

    DRIVER

    ACCEPT

    FUNCTION

    SINGLE

    TASK

    FIG.7

    APIs

    701

    FPI SERVER

    Copy p ro vide d b y IJSPTO from the PIRS Image Database on 11/15/2007

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 72 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    93/102

    U.S Patent Jun 22 1999 Sheet of 5915131

    APPLICATION 801

    FIG.8

    802

    USER MODE WORLD

    KERNEL WORLD

    WRAPPER

    TASK

    Copy p ro vide d b y USPTO from the PIRS Image Database on 11/15/2007

    Case 1:10-cv-00166-UNA Document 1-5 Filed 03/02/10 Page 73 of 82

  • 8/14/2019 Apple HTC patent lawsuit : Exhibits F - J

    94/102

    METHOD AND APPARATUS FOR

    HANDLING I/O REQUESTS UTILIZING

    SEPARATE PROGRAMMING INTERFACES

    TO ACCESS SEPARATE I/O SERVICES

    FIELD OF THE INVENTION

    The invention relates to the field of computer systems

    particularly the present invention relates to handling service

    requests generated by application programs

    BACKGROUND OF THE INVENTION

    Application programs running in computer systems often

    access system resources such as input/output I/O devices

    These system r es ou rc es a re o ft en referred to as services

    C er tain s et s of services e.g devices have similar characteristics For instance all display devices or all ADB devices

    have similar interface requirements

    To gain access to I/O resources appli cati ons gener at e

    servicerequests to which are s ent through an application

    20

    programming interface API The service requests are converted by the API to common set of functions that are

    forwarded to the operating system to be serviced The

    operating system then sees that service requests are

    responded to by the appropriate resources e.g device For

    instance the operating system may direct request to

    device driver

    One problem in the prior a rt i s that service requests are not

    sent directly to the I/O device or resource All service

    requests from all a pp li ca ti on s a re typically sent through the

    same API Because of this all of the requests are converted

    into common set of functions These common set of

    functions do not have meaning for all the various types of

    I/O devices For i ns ta nc e h ig h level request to play

    sound may be converted into write function to sound

    device However the write function is n ot t he b es t method

    of communicating sound data to the sound device Thus

    another conversion of write data to sound data format maybe required Also some functions do not have one-to-one

    correspondence with t he f un ct io n s et of some I/O devices

    Thus it would be desirable to avoid this added complexityand to take advantage of the similar characteristics of classes

    of I/O devices when handling I/O requests while providingservices and an environment in which to run those services

    that is tuned to the specific device needs and requirements

    SUMMARY OF THE INVENTION

    m et ho d a nd apparatus for handling I/O requests is

    described In the present invention the I/O requests are

    handled by the computer system having bus and memory so

    coupledto the bus that s tores dat a and

    programminginstruc

    tions The program