WO2007027363A1 - Portable remoting component with a scaleable feature set - Google Patents

Portable remoting component with a scaleable feature set Download PDF

Info

Publication number
WO2007027363A1
WO2007027363A1 PCT/US2006/030484 US2006030484W WO2007027363A1 WO 2007027363 A1 WO2007027363 A1 WO 2007027363A1 US 2006030484 W US2006030484 W US 2006030484W WO 2007027363 A1 WO2007027363 A1 WO 2007027363A1
Authority
WO
WIPO (PCT)
Prior art keywords
remote protocol
client
platform
interfacing
interfaces
Prior art date
Application number
PCT/US2006/030484
Other languages
French (fr)
Inventor
Jeson Patel
Nadim Y. Abdo
Nelly Porter
Joy Chik
Original Assignee
Microsoft Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corporation filed Critical Microsoft Corporation
Priority to JP2008529049A priority Critical patent/JP4959706B2/en
Priority to CN200680031442.6A priority patent/CN101253490B/en
Priority to EP20060800779 priority patent/EP1920343A4/en
Publication of WO2007027363A1 publication Critical patent/WO2007027363A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Definitions

  • Remote client access platforms and systems allow computing devices or client devices to remotely access data from application programs hosted by and resident at an application server or servers (server computer).
  • Client devices can include personal computers, personal communication devices (e.g., cellular phones), set top boxes, gaming units, television sets, etc.
  • client devices such as a television-based client device
  • communication between the server computer and client device may only involve the receiving of data or information from the server computer.
  • client devices there may be significant two-way communication between the server computer and the client device, where the client device is a computing device (e.g., a personal computer) that is sending data or information to the server computer.
  • the quality of data or information may be different for client devices. For example, a cellular telephone over a wireless network does not need or cannot process the same amount of graphics information sent to a personal computer over a broadband network.
  • Communication between the server computer and client devices typically involves the use of a communication protocol, such as remote data protocol or RDP.
  • a communication protocol such as remote data protocol or RDP.
  • Lower level network protocols such as transmission control protocol over Internet protocol (TCPAP) may also be involved.
  • TCPAP transmission control protocol over Internet protocol
  • a communication platform is provided at the client device to support a particular communication protocol.
  • a client device particularly equipped to support RDP communications may be referred to as an RDP client.
  • a client device supporting a protocol specific communication platform may be limited in its portability and scalability.
  • the protocol specific client device may not be supported by other operating systems (i.e., software platforms) and/or hardware platforms.
  • Scalability limitations include the need to provide a scaled or reduced feature set to specific client devices.
  • certain client devices may not need or cannot support particular feature sets such as communication back to the server computer, rich graphics (i.e., graphics information typically sent to a personal computer), etc.
  • the communications platform is modified to support the client device.
  • the code base of the communications platform may be significantly modified to support a specific client device. Since there can be many client devices with different needs and processing resources, case by case modification of a communication platform for different client devices can be a significant expense. Furthermore, providing code base to perform such modification may involve the owner of the code base to provide proprietary information to third parties.
  • a scaled set of features or services for a remote protocol platform are defined for multiple client devices, and particularly implemented at a client device.
  • the remote protocol platform is based on a particular remote protocol.
  • Application program interfaces interfaces
  • a component communicates with the interfaces and exposes the interface to applications in the client device and allows remote communication based on the particular remote protocol.
  • Fig. 1 is an illustration of an exemplary server-client system that supports a full client feature set or a micro client feature set of a remote protocol platform.
  • Fig. 2 is an illustration of an exemplary client device that includes a full client component that includes a micro client component.
  • Fig. 3 is a flowchart illustrating a process for providing platform independent application program interfaces through a micro core component.
  • Fig. 4 is a flowchart illustrating a process for providing a scaled and extensible feature set of a remote protocol platform supporting a particular remote protocol.
  • Fig. 1 shows an exemplary server-client system 100.
  • System 100 includes a server computer 102 and one or more client devices as represented by client device 104.
  • the client device 104 may include personal computers (PC) such as desktops and laptops; personal computing devices such as personal digital assistants and cellular telephones; and multimedia devices such as gaming units, set top boxes, and television sets.
  • Server computer 102 and client device 104 are connected by a network 106 which may include one or more networks, including the Internet.
  • the server computer 102 and client device 104 are configured to use a particular remote protocol, such as remote data protocol or RDP, for communications.
  • a particular remote protocol such as remote data protocol or RDP
  • Client device 104 includes a remote protocol platform that comprises a scaled or minimal subset of features typically supported by a fully featured remote protocol platform, hi other words, regardless of the type or capability of client device 104, client device 104 includes a minimal subset of features to support the remote protocol. As further discussed below, client devices that require additional features of the remote protocol or a "fully featured" protocol platform are supported by an extensible core and interfaces.
  • Server computer 102 includes a central processing unit or processor 108 and a memory 110. Further included in server computer 102 is an operating system 112 and one or more application programs or applications 114. Server computer 102 also includes a remote protocol negotiator 116 and an encoder 118. Protocol negotiator 116 is configured to support communications between the server computer 102 and the client device 104 based on the particular remote protocol. In addition, the particular remote protocol that is used may involve providing data packets representative of information and/or encoding of data. Encoder 118 may be used to package or structure communication packets from the server computer 102 to the client device 104. [0016] The client device 104 includes a central processing unit or processor 120 and a memory 122.
  • Client device 104 also includes an operating system 124, and one or more application programs or applications 126.
  • the client device 104 further includes a full client 128 that provides an interface or communications to the server computer 102.
  • full client 128 may be implemented as a component or protocol platform that supports communication using the particular remote protocol.
  • Full client 128 includes reduced featured set micro client 130.
  • the micro client 130 is particularly configured for client device 104, and is portable to support multiple software and hardware platforms (i.e., platform independent); scalable in that includes a minimal subset of features that support the remote protocol; and extensible to provided additional needed features beyond what is provided by micro client 130.
  • micro client 130 and any extensions, such as interfaces are included in the full client 128.
  • Fig. 2 is a block diagram further illustrating the client device 104 that includes the full client 128 and the micro client 130.
  • Client computer 104 includes the full client 128 which further includes a full client user interface 200.
  • the full client user interface 200 may particularly be used to communicate with a server computer (e.g., server computer 102), regardless of whether any communication features are provided with micro client 130.
  • server computer e.g., server computer 102
  • there is no distinction in interfaces as to whether the client device 104 is a reduced featured set supported by solely by micro client 130 or a full feature set remote protocol platform having multiple extensions (e.g., interfaces). It is contemplated that in certain cases only a graphics only user interface is implemented where no input is supported. In such cases, the user interface would be different than a client that supports input.
  • the micro client 130 includes common platform abstraction layers (PALs) 202 that are applicable to multiple devices.
  • PALs 202 are a common set of defined interfaces that support services of a remote protocol platform, such as an RDP platform. Exemplary PALs that may be included in PALS 202 are further described below.
  • PALs 202 may interface to a micro core 204. Or alternatively viewed, micro core 204 may expose PALs 202 to an application or application program. The micro core 204 relies on PALs 202 for remote protocol platform specific services, examples of which are discussed below in reference to exemplary PALs.
  • the micro core 204 (or the micro client 130) may not be an application, it may be a component integrated into an application. For example, micro core 204 may be part of a multimedia application.
  • micro core 204 includes common functions used or features used by client devices.
  • micro core 204 includes compressing services 206 that may be used to compress data to a server computer (e.g., server computer 102) and an encoding services 208 to encrypt or encode data or data packets to the server computer (e.g., server computer 102).
  • Other functions that may be provided by the micro core 204 include establishing a remote protocol connection; rendering a minimal set of remote protocol graphics (e.g., RDP graphics) that may include screen data and block transfers; sending input data or events from an input device such as a keyboard or mouse; and enabling and sending data through virtual channels.
  • Virtual channel plug- in(s) 210 is particularly provided for such virtual channel communications.
  • micro core 204 provides a scaled set of features (i.e., scaled feature set) provided by a particular remote protocol.
  • the scaled feature set is what is commonly used by different client devices.
  • the scaled feature set may particularly be used in commercial embedded client devices (e.g., television sets) or client devices that offer differing software and hardware capabilities.
  • client devices e.g., television sets
  • client devices that offer differing software and hardware capabilities.
  • micro core 204 may expose other application program interfaces (API).
  • API application program interfaces
  • micro core hosting API 212 can include a top level API for controlling the micro core 204 and providing a mechanism to establish and disconnect a remote protocol session, including the ability to set a number of properties of the remote protocol session (e.g., color depth and resolution).
  • Another API may include an interface that allows an application or application layer to receive notification regarding important state changes within the micro core 204. Examples of state changes include successful or unsuccessful connection, disconnection, and auto reconnection.
  • the micro core 204 is software and hardware platform independent, and thus is portable, by providing basic or common interfaces through PALs 202 and common APIs described above.
  • the above described APIs and PALs 202 are common to client devices regardless of the hardware and software platforms of the client devices. Therefore, portability comes from a common code base in a common feature set of APIs and PALs 202 that transcend or are accessible by various hardware and software platforms.
  • the micro core 204 may provide extensibility points to extend its functionality, providing a small subset of functionality for the micro core 204 while still having the ability to provide the features of a particular operating system, but in a platform independent manner.
  • the following are exemplary PALs that may be included in PALs 202.
  • PALs 202 may include fewer PALs and/or different PALS. Furthermore, other APIs or interfaces may be exposed by micro core 204.
  • An input PAL 214 is an abstraction for an input source. Input events generated by hardware are sources by the input PAL 214 and sent to the micro core 204 to be sent to server computer (e.g., server computer 102) through the remote protocol. The micro core 204 understands that an input event should be sent to the server computer, and plays no role in how the events are generated.
  • Virtual channels may be implemented in a platform independent manner in the micro core 204; however, the virtual channel plug-in(s) 210 may be platform dependent. Specifically, the way in which the virtual channel plug-in(s) 210 are loaded may be platform dependent. If virtual channel plug-in(s) 210 are dynamically loaded, then loading relies on an operating system mechanism to load dynamic code.
  • a virtual channel PAL 216 provides an interface for the micro core 204 to enumerate and load the virtual channel plug-in(s) 210. In addition, the virtual channel PAL 216 provides a mechanism for virtual channel traffic to flow through specific threads.
  • a graphics PAL 218 is an interface that allows the micro core 204 to render decoded remote protocol graphics data.
  • the graphics PAL 218 provides a set of drawing operations which can be applied to a drawing surface.
  • a drawing surface is an abstraction for the "output" display which includes a physical display (e.g., a monitor), a printer, or an input to a memory buffer.
  • a network PAL 220 is an abstraction for network communication.
  • the micro core 204 relies on the network PAL 220 to establish a connection, and send data back and forth with the server computer (e.g., server computer 102).
  • the actual network communication protocol may be abstracted from the micro core 204.
  • the micro core 204 understands that it can connect, disconnect, and send and receive data.
  • Possible network PAL 220 implementations could use transmission control protocol (TCP), secure sockets layer (SSL), and/or serial protocols.
  • a system PAL 222 is a platform independent operating system API.
  • the system PAL 222 includes, but is not limited to, functions for memory management, locking, timers, threads, etc.
  • micro core 204 relies on the system PAL 222 for operating system level services.
  • a security PAL 224 is an abstraction for a number of the security functions that the micro core 204 uses to implement security and licensing layers of the remote protocol.
  • Extensibility is directed to supporting client devices that have greater or additional platform requirements (e.g., software, hardware, communication platforms) than what are provided in the common feature set of APIs and PALs 202 provided in the micro client 130.
  • full client 128 may include a hosting extended application program interfaces (API) 226 which provide particular extended interfaces.
  • API application program interfaces
  • PALs that are specific to particular requirements or a full feature set are provided through remote protocol extended PALs 228. hi certain cases, a specific graphics executive and AP 230 may be provided.
  • An extended core 232 may be implemented to expose the hosting extended APIs 226, remote protocol extended PALs 228, and graphics executive and API 230. Ih certain implementations, the extended core 232 may include the micro core 204 and any platform independent extensions (e.g., PALs 202).
  • a remote protocol PAL implementation 234 which is provided to specifically support the particular remote protocol.
  • the remote protocol PAL implementation 234 may receive API call streams to particular interfaces (e.g., PALs).
  • Data/information communicated from the remote protocol PAL implementation 234 may be communicated through a secure socket layer or other channels, as represented by remote protocol channels 238.
  • Remote protocol channels 238 also represent channels to the server computer (e.g., server computer 102).
  • Remote protocol layer 236 represents the particular remote protocol in which the data/information is communicated.
  • remote protocol layer may be an RDP layer.
  • the process 300 may be implemented at a client device through a micro core.
  • the process 300 is illustrated as a collection of blocks in a logical flow graph, which represent a sequence of operations that can be implemented in hardware, software, firmware, or a combination thereof.
  • the blocks represent computer instructions that, when executed by one or more processors, perform the recited operations.
  • the process 300 may be implemented, for example, by the system 100 of Fig. 1, client device 104 and micro core 204, although the process 300 may be implemented by other architectures.
  • a core set of platform dependent services is defined. Such services may include graphics interfacing, network interfacing, input interfaces from devices, channels (e.g., virtual channels), hardware system and/or operating system, and security.
  • the core set of dependent services are expected to be used by any client device implementing a particular remote protocol and remote protocol platform.
  • PALs platform abstraction layers
  • Each of the PALs support a particular platform dependent service as defined in block 302. For example, there is a PAL that supports graphics, a PAL that supports network interfacing, a PAL that supports systems, and a PAL that supports security.
  • other core interfaces may be created as needed. These core interfaces are in addition to the PALs created in block 304. Examples of such interfaces, and functions that they provide, include a top level API for controlling a component such as micro core 204, and providing a mechanism to establish and disconnect a remote protocol session, including the ability to set a number of properties of the remote protocol session.
  • Another interface may be an API that allows an application or application layer to receive notification regarding important state changes within the component (e.g., micro core 204). Examples of state changes include successful or unsuccessful connection, disconnection, and auto reconnection.
  • the PALs and interfaces are communicated or are made available to the component or micro core (e.g., micro core 204).
  • the micro core is platform independent, meaning that the micro core may be used by or ported over to different hardware and software platforms. In other words, the PALs and interfaces allow a client to be platform (hardware and software) independent.
  • the micro core exposes the interfaces including the PALs to an application in the client device.
  • Applications include application programs that support input and output devices such as keyboards, mice, output displays, etc.
  • additional interfaces and PALs may be provided. The addition of interfaces and PALs effectively extends the functionality of the micro core.
  • Fig. 4 shows a process 400 that provides for a scaled and extended feature set for a remote protocol platform. The process 400 may be implemented at a client device which communicates to a server computer using the remote protocol.
  • the process 400 is illustrated as a collection of blocks in a logical flow graph, which represent a sequence of operations that can be implemented in hardware, software, firmware, or a combination thereof, hi the context of software, the blocks represent computer instructions that, when executed by one or more processors, perform the recited operations. Although described as a flowchart, it is contemplated that certain blocks may take place concurrently or in a different order.
  • the process 400 may be implemented, for example, by the system 100 of Fig. 1, and client device 104, although the process 400 maybe implemented by other architectures.
  • a scaled feature set for a particular remote protocol is defined. It is expected that a protocol platform supporting the remote protocol will include more features than the needs of the simplest client device. Therefore, the scaled feature set is a minimal feature subset that supports client devices having minimal resource capabilities and feature set requirements as to a remote protocol platform. The subset features are chosen from full features that are provided by a particular remote protocol.
  • platform abstraction layers PALs
  • interfaces to support the scaled feature set are provided.
  • the PALs and interfaces are used to communicate with applications through a micro core.
  • Each of the PALs is directed to supporting a particular service as part of the remote protocol platform. Examples of services supported or provide by the PALs include graphics interfacing, network interfacing, input interfacing, system interfacing, and security interfacing.
  • the PALs may be specific to platform dependent services; however, the interfaces and PALs, and the micro core in particular, may support or be ported over to various hardware and software platforms.
  • the integration or grouping of the PALs, interfaces, and micro core make up the scaled remote protocol platform.
  • a determination is made if additional features as supported by the remote protocol are needed. The additional features are provided by extending the micro core, and providing for an extended remote protocol platform, by adding the additional interfaces and PALs.
  • communication is performed to the server computer based on the particular remote protocol.
  • An interface may be made available to the micro core to perform communication.
  • the communication may be through an interface representing a full feature client device, and may be over one or more channels, including virtual channels.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

A client device that includes a scaled remote protocol platform to support communication using a particular remote protocol. A software and hardware platform independent micro core or micro client exposes interfaces in the client device to applications to support remote communication. The micro core may be extended to include additional features or service as needed by the client device.

Description

PORTABLE REMOTING COMPONENT WITH A SCALEABLE FEATURE SET
RELATED APPLICATIONS
[001] The present application claims priority under 35 U.S.C. §119(e) to U.S. Provisional Application No. 60/712,994, filed August 31, 2005, the disclosure of which is incorporated herein. BACKGROUND
[002] Remote client access platforms and systems allow computing devices or client devices to remotely access data from application programs hosted by and resident at an application server or servers (server computer). Client devices can include personal computers, personal communication devices (e.g., cellular phones), set top boxes, gaming units, television sets, etc.
[003] For certain client devices, such as a television-based client device, communication between the server computer and client device may only involve the receiving of data or information from the server computer. For other client devices, there may be significant two-way communication between the server computer and the client device, where the client device is a computing device (e.g., a personal computer) that is sending data or information to the server computer. Furthermore, the quality of data or information, such as graphics data, may be different for client devices. For example, a cellular telephone over a wireless network does not need or cannot process the same amount of graphics information sent to a personal computer over a broadband network.
[004] Communication between the server computer and client devices typically involves the use of a communication protocol, such as remote data protocol or RDP. Lower level network protocols such as transmission control protocol over Internet protocol (TCPAP) may also be involved. A communication platform is provided at the client device to support a particular communication protocol. A client device particularly equipped to support RDP communications may be referred to as an RDP client.
[005] A client device supporting a protocol specific communication platform, such as an RDP client, may be limited in its portability and scalability. As to portability limitations, the protocol specific client device may not be supported by other operating systems (i.e., software platforms) and/or hardware platforms. Scalability limitations include the need to provide a scaled or reduced feature set to specific client devices. As discussed above, certain client devices may not need or cannot support particular feature sets such as communication back to the server computer, rich graphics (i.e., graphics information typically sent to a personal computer), etc. [006] It is usual that in order to support a particular protocol for a specific client device, the communications platform is modified to support the client device. For example, the code base of the communications platform may be significantly modified to support a specific client device. Since there can be many client devices with different needs and processing resources, case by case modification of a communication platform for different client devices can be a significant expense. Furthermore, providing code base to perform such modification may involve the owner of the code base to provide proprietary information to third parties.
SUMMARY
[007] A scaled set of features or services for a remote protocol platform are defined for multiple client devices, and particularly implemented at a client device. The remote protocol platform is based on a particular remote protocol. Application program interfaces (interfaces) are created to support each feature or service. A component communicates with the interfaces and exposes the interface to applications in the client device and allows remote communication based on the particular remote protocol. [008] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE CONTENTS
[009] The detailed description is described with reference to the accompanying figures, hi the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference number in different figures indicates similar or identical items. [0010] Fig. 1 is an illustration of an exemplary server-client system that supports a full client feature set or a micro client feature set of a remote protocol platform. [0011] Fig. 2 is an illustration of an exemplary client device that includes a full client component that includes a micro client component.
[0012] Fig. 3 is a flowchart illustrating a process for providing platform independent application program interfaces through a micro core component. [0013] Fig. 4 is a flowchart illustrating a process for providing a scaled and extensible feature set of a remote protocol platform supporting a particular remote protocol.
DETAILED DESCRIPTION
[0014] Fig. 1 shows an exemplary server-client system 100. System 100 includes a server computer 102 and one or more client devices as represented by client device 104. The client device 104 may include personal computers (PC) such as desktops and laptops; personal computing devices such as personal digital assistants and cellular telephones; and multimedia devices such as gaming units, set top boxes, and television sets. Server computer 102 and client device 104 are connected by a network 106 which may include one or more networks, including the Internet. The server computer 102 and client device 104 are configured to use a particular remote protocol, such as remote data protocol or RDP, for communications. Client device 104 includes a remote protocol platform that comprises a scaled or minimal subset of features typically supported by a fully featured remote protocol platform, hi other words, regardless of the type or capability of client device 104, client device 104 includes a minimal subset of features to support the remote protocol. As further discussed below, client devices that require additional features of the remote protocol or a "fully featured" protocol platform are supported by an extensible core and interfaces.
[0015] Server computer 102 includes a central processing unit or processor 108 and a memory 110. Further included in server computer 102 is an operating system 112 and one or more application programs or applications 114. Server computer 102 also includes a remote protocol negotiator 116 and an encoder 118. Protocol negotiator 116 is configured to support communications between the server computer 102 and the client device 104 based on the particular remote protocol. In addition, the particular remote protocol that is used may involve providing data packets representative of information and/or encoding of data. Encoder 118 may be used to package or structure communication packets from the server computer 102 to the client device 104. [0016] The client device 104 includes a central processing unit or processor 120 and a memory 122. Client device 104 also includes an operating system 124, and one or more application programs or applications 126. The client device 104 further includes a full client 128 that provides an interface or communications to the server computer 102. In particular, full client 128 may be implemented as a component or protocol platform that supports communication using the particular remote protocol. Full client 128 includes reduced featured set micro client 130. In general, the micro client 130 is particularly configured for client device 104, and is portable to support multiple software and hardware platforms (i.e., platform independent); scalable in that includes a minimal subset of features that support the remote protocol; and extensible to provided additional needed features beyond what is provided by micro client 130. As further discussed below, micro client 130 and any extensions, such as interfaces, are included in the full client 128.
[0017] Fig. 2 is a block diagram further illustrating the client device 104 that includes the full client 128 and the micro client 130. Client computer 104 includes the full client 128 which further includes a full client user interface 200. The full client user interface 200 may particularly be used to communicate with a server computer (e.g., server computer 102), regardless of whether any communication features are provided with micro client 130. In other words, there is no distinction in interfaces as to whether the client device 104 is a reduced featured set supported by solely by micro client 130 or a full feature set remote protocol platform having multiple extensions (e.g., interfaces). It is contemplated that in certain cases only a graphics only user interface is implemented where no input is supported. In such cases, the user interface would be different than a client that supports input. [0018] The micro client 130 includes common platform abstraction layers (PALs) 202 that are applicable to multiple devices. PALs 202 are a common set of defined interfaces that support services of a remote protocol platform, such as an RDP platform. Exemplary PALs that may be included in PALS 202 are further described below. [0019] PALs 202 may interface to a micro core 204. Or alternatively viewed, micro core 204 may expose PALs 202 to an application or application program. The micro core 204 relies on PALs 202 for remote protocol platform specific services, examples of which are discussed below in reference to exemplary PALs. Although the micro core 204 (or the micro client 130) may not be an application, it may be a component integrated into an application. For example, micro core 204 may be part of a multimedia application.
[0020] The micro core 204 includes common functions used or features used by client devices. In this example, micro core 204 includes compressing services 206 that may be used to compress data to a server computer (e.g., server computer 102) and an encoding services 208 to encrypt or encode data or data packets to the server computer (e.g., server computer 102). Other functions that may be provided by the micro core 204 include establishing a remote protocol connection; rendering a minimal set of remote protocol graphics (e.g., RDP graphics) that may include screen data and block transfers; sending input data or events from an input device such as a keyboard or mouse; and enabling and sending data through virtual channels. Virtual channel plug- in(s) 210 is particularly provided for such virtual channel communications. [0021] In general, micro core 204 provides a scaled set of features (i.e., scaled feature set) provided by a particular remote protocol. The scaled feature set is what is commonly used by different client devices. For example, the scaled feature set may particularly be used in commercial embedded client devices (e.g., television sets) or client devices that offer differing software and hardware capabilities. [0022] Li addition to exposing PALs 202 to an application (e.g., applications 126 in client computer 104), micro core 204 may expose other application program interfaces (API). Such APIs are represented by micro core hosting API 212 and can include a top level API for controlling the micro core 204 and providing a mechanism to establish and disconnect a remote protocol session, including the ability to set a number of properties of the remote protocol session (e.g., color depth and resolution). Another API may include an interface that allows an application or application layer to receive notification regarding important state changes within the micro core 204. Examples of state changes include successful or unsuccessful connection, disconnection, and auto reconnection.
[0023] The micro core 204 is software and hardware platform independent, and thus is portable, by providing basic or common interfaces through PALs 202 and common APIs described above. The above described APIs and PALs 202 are common to client devices regardless of the hardware and software platforms of the client devices. Therefore, portability comes from a common code base in a common feature set of APIs and PALs 202 that transcend or are accessible by various hardware and software platforms. In certain implementations, the micro core 204 may provide extensibility points to extend its functionality, providing a small subset of functionality for the micro core 204 while still having the ability to provide the features of a particular operating system, but in a platform independent manner. [0024] The following are exemplary PALs that may be included in PALs 202. It is to be understood that PALs 202 may include fewer PALs and/or different PALS. Furthermore, other APIs or interfaces may be exposed by micro core 204. [0025] An input PAL 214 is an abstraction for an input source. Input events generated by hardware are sources by the input PAL 214 and sent to the micro core 204 to be sent to server computer (e.g., server computer 102) through the remote protocol. The micro core 204 understands that an input event should be sent to the server computer, and plays no role in how the events are generated.
[0026] Virtual channels may be implemented in a platform independent manner in the micro core 204; however, the virtual channel plug-in(s) 210 may be platform dependent. Specifically, the way in which the virtual channel plug-in(s) 210 are loaded may be platform dependent. If virtual channel plug-in(s) 210 are dynamically loaded, then loading relies on an operating system mechanism to load dynamic code. A virtual channel PAL 216 provides an interface for the micro core 204 to enumerate and load the virtual channel plug-in(s) 210. In addition, the virtual channel PAL 216 provides a mechanism for virtual channel traffic to flow through specific threads.
[0027] A graphics PAL 218 is an interface that allows the micro core 204 to render decoded remote protocol graphics data. The graphics PAL 218 provides a set of drawing operations which can be applied to a drawing surface. A drawing surface is an abstraction for the "output" display which includes a physical display (e.g., a monitor), a printer, or an input to a memory buffer. An example of a drawing operation on the graphics PAL 218 is "draw a rectangle that is blue, 10x10 pixels, and located as position x=50, y=75".
[0028] A network PAL 220 is an abstraction for network communication. The micro core 204 relies on the network PAL 220 to establish a connection, and send data back and forth with the server computer (e.g., server computer 102). The actual network communication protocol may be abstracted from the micro core 204. The micro core 204 understands that it can connect, disconnect, and send and receive data. Possible network PAL 220 implementations could use transmission control protocol (TCP), secure sockets layer (SSL), and/or serial protocols.
[0029] A system PAL 222 is a platform independent operating system API. The system PAL 222 includes, but is not limited to, functions for memory management, locking, timers, threads, etc. In general, micro core 204 relies on the system PAL 222 for operating system level services. A security PAL 224 is an abstraction for a number of the security functions that the micro core 204 uses to implement security and licensing layers of the remote protocol.
[0030] Extensibility is directed to supporting client devices that have greater or additional platform requirements (e.g., software, hardware, communication platforms) than what are provided in the common feature set of APIs and PALs 202 provided in the micro client 130. To support extensibility of unique properties of particular platforms, full client 128 may include a hosting extended application program interfaces (API) 226 which provide particular extended interfaces. Furthermore, PALs that are specific to particular requirements or a full feature set are provided through remote protocol extended PALs 228. hi certain cases, a specific graphics executive and AP 230 may be provided.
[0031] An extended core 232 may be implemented to expose the hosting extended APIs 226, remote protocol extended PALs 228, and graphics executive and API 230. Ih certain implementations, the extended core 232 may include the micro core 204 and any platform independent extensions (e.g., PALs 202).
[0032] Communication or data/information communicated through the various interfaces, PALs 202, PALS 228, is processed through a component referred to as a remote protocol PAL implementation 234 which is provided to specifically support the particular remote protocol. The remote protocol PAL implementation 234 may receive API call streams to particular interfaces (e.g., PALs). Data/information communicated from the remote protocol PAL implementation 234 may be communicated through a secure socket layer or other channels, as represented by remote protocol channels 238. Remote protocol channels 238 also represent channels to the server computer (e.g., server computer 102). Remote protocol layer 236 represents the particular remote protocol in which the data/information is communicated. For example, remote protocol layer may be an RDP layer. [0033] Fig. 3 shows a process 300 that provides for or exposes application program interfaces (API). The process 300 may be implemented at a client device through a micro core. The process 300 is illustrated as a collection of blocks in a logical flow graph, which represent a sequence of operations that can be implemented in hardware, software, firmware, or a combination thereof. In the context of software, the blocks represent computer instructions that, when executed by one or more processors, perform the recited operations. Although described as a flowchart, it is contemplated that certain blocks may take place concurrently or in a different order. The process 300 may be implemented, for example, by the system 100 of Fig. 1, client device 104 and micro core 204, although the process 300 may be implemented by other architectures.
[0034] At block 302, a core set of platform dependent services is defined. Such services may include graphics interfacing, network interfacing, input interfaces from devices, channels (e.g., virtual channels), hardware system and/or operating system, and security. The core set of dependent services are expected to be used by any client device implementing a particular remote protocol and remote protocol platform.
[0035] At block 304, well defined interfaces or platform abstraction layers (PALs) are created. Each of the PALs support a particular platform dependent service as defined in block 302. For example, there is a PAL that supports graphics, a PAL that supports network interfacing, a PAL that supports systems, and a PAL that supports security. [0036] At block 306, other core interfaces may be created as needed. These core interfaces are in addition to the PALs created in block 304. Examples of such interfaces, and functions that they provide, include a top level API for controlling a component such as micro core 204, and providing a mechanism to establish and disconnect a remote protocol session, including the ability to set a number of properties of the remote protocol session. Another interface may be an API that allows an application or application layer to receive notification regarding important state changes within the component (e.g., micro core 204). Examples of state changes include successful or unsuccessful connection, disconnection, and auto reconnection. [0037] At block 308, the PALs and interfaces are communicated or are made available to the component or micro core (e.g., micro core 204). The micro core is platform independent, meaning that the micro core may be used by or ported over to different hardware and software platforms. In other words, the PALs and interfaces allow a client to be platform (hardware and software) independent.
[0038] At block 310, the micro core exposes the interfaces including the PALs to an application in the client device. Applications include application programs that support input and output devices such as keyboards, mice, output displays, etc. [0039] At block 312, in order to support additional features or a fully feature set found in a particular remote protocol platform, additional interfaces and PALs may be provided. The addition of interfaces and PALs effectively extends the functionality of the micro core. [0040] Fig. 4 shows a process 400 that provides for a scaled and extended feature set for a remote protocol platform. The process 400 may be implemented at a client device which communicates to a server computer using the remote protocol. The process 400 is illustrated as a collection of blocks in a logical flow graph, which represent a sequence of operations that can be implemented in hardware, software, firmware, or a combination thereof, hi the context of software, the blocks represent computer instructions that, when executed by one or more processors, perform the recited operations. Although described as a flowchart, it is contemplated that certain blocks may take place concurrently or in a different order. The process 400 may be implemented, for example, by the system 100 of Fig. 1, and client device 104, although the process 400 maybe implemented by other architectures. [0041] At block 402, a scaled feature set for a particular remote protocol is defined. It is expected that a protocol platform supporting the remote protocol will include more features than the needs of the simplest client device. Therefore, the scaled feature set is a minimal feature subset that supports client devices having minimal resource capabilities and feature set requirements as to a remote protocol platform. The subset features are chosen from full features that are provided by a particular remote protocol.
[0042] At block 404, platform abstraction layers (PALs) and interfaces to support the scaled feature set are provided. In particular, the PALs and interfaces are used to communicate with applications through a micro core. Each of the PALs is directed to supporting a particular service as part of the remote protocol platform. Examples of services supported or provide by the PALs include graphics interfacing, network interfacing, input interfacing, system interfacing, and security interfacing. The PALs may be specific to platform dependent services; however, the interfaces and PALs, and the micro core in particular, may support or be ported over to various hardware and software platforms. The integration or grouping of the PALs, interfaces, and micro core make up the scaled remote protocol platform. [0043] At block 406, a determination is made if additional features as supported by the remote protocol are needed. The additional features are provided by extending the micro core, and providing for an extended remote protocol platform, by adding the additional interfaces and PALs.
[0044] At block 408, communication is performed to the server computer based on the particular remote protocol. An interface may be made available to the micro core to perform communication. The communication may be through an interface representing a full feature client device, and may be over one or more channels, including virtual channels.
CONCLUSION [0045] The above-described methods and devices support various platforms using a particular remote protocol at a client device. Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claimed invention.

Claims

CLAIMSWhat is claimed is:
1. A method of exposing application program interfaces in a remote client device that supports a remote protocol comprising: defining a scaled set of services that support a remote protocol platform, wherein the remote protocol platform is based on the remote protocol; creating application program interfaces that support the scaled set of services; and exposing the application program interfaces to a resident application in the remote client device.
2. The method of claim 1 wherein the defining a set of services comprises one or more of the following services: graphics interfacing, network interfacing, input interfacing, system interfacing, and security interfacing.
3. The method of claim 1 wherein the creating application program interfaces comprises creating platform abstraction layers (PALs) that are platform independent to the remote client device, wherein each PAL is directed to a particular feature of the set of services.
4. The method of claim 3, wherein each of the PALs is directed to one of the following: graphics interfacing, network interfacing, input interfacing, system interfacing, and security interfacing.
5. The method of claim 1 wherein the creating application program interfaces comprises creating core interfaces whose functions include one or more of the following: controlling a component that performs the exposing; and providing a mechanism to establish a remote protocol session.
6. The method of claim 1 further comprising extending the remote protocol platform by providing additional interfaces to support additional features as supported by the remote protocol.
7. The method of claim 1 further comprising communicating the application program interfaces to a micro core component, wherein the micro core component performs the exposing the application program interfaces to the resident application.
8. A method of providing a scaled remote protocol platform in a client device comprising: defining features to be provided in the scaled remote protocol platform; providing client device platform independent interfaces and program abstraction layers (PALs) to support each of the features, wherein a micro core communicates with an application in the client device through interfaces and the
PALs; and grouping the interfaces, the PALs, and the micro core to provide the scaled remote protocol platform.
9. The method of claim 8 wherein the defining features is based on a minimal set of features to support communications using a particular remote protocol.
10. The method of claim 8 wherein the defining features is based on a subset of features provided by a particular remote protocol.
11. The method of claim 8 wherein the providing interfaces and PALs comprises providing one or more of the following services: graphics interfacing, network interfacing, input interfacing, system interfacing, and security interfacing.
12. The method of claim 8 further comprising determining if additional features are needed, and creating interfaces to support the needed features.
13. The method of claim 8 further comprising communicating with a server computer using the scaled remote protocol platform through a full client interface.
14. A client device comprising: a processor; a full client remote protocol platform controlled by the processor; a micro client remote protocol platform that is included in the full client remote protocol platform; and one or more platform independent interfaces supporting a scaled feature set of services, accessed by the micro client remote protocol platform, wherein the micro client remote protocol platform exposes the interfaces to an application in the client device.
15. The client device of claim 14 wherein the full client remote protocol platform includes a full client interface for communication by the full client remote protocol platform and the micro client remote protocol platform.
16. The client device of claim 14 wherein the micro client comprises a hardware and software platform independent micro core.
17. The client device of claim 14 wherein one or more interfaces comprise one or more platform abstraction layers that support one of the following: graphics interfacing, network interfacing, input interfacing, system interfacing, and security interfacing.
18. The client device of claim 14 wherein the full client remote protocol platform includes a full client interface for communication by the full client remote protocol platform and the micro client remote protocol platform.
19. The client device of claim 14 wherein the client device is an embedded device.
20. The client device of claim 14 further comprising an extended core that includes additional interfaces that support additional services.
PCT/US2006/030484 2005-08-31 2006-08-04 Portable remoting component with a scaleable feature set WO2007027363A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008529049A JP4959706B2 (en) 2005-08-31 2006-08-04 Portable remote device with expandable feature set
CN200680031442.6A CN101253490B (en) 2005-08-31 2006-08-04 Client device, and method for exhibiting application program interface and providing remote protocol platform
EP20060800779 EP1920343A4 (en) 2005-08-31 2006-08-04 Portable remoting component with a scaleable feature set

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US71299405P 2005-08-31 2005-08-31
US60/712,994 2005-08-31
US11/379,955 2006-04-24
US11/379,955 US20070050471A1 (en) 2005-08-31 2006-04-24 Portable Remoting Component With A Scaleable Feature Set

Publications (1)

Publication Number Publication Date
WO2007027363A1 true WO2007027363A1 (en) 2007-03-08

Family

ID=37805658

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2006/030484 WO2007027363A1 (en) 2005-08-31 2006-08-04 Portable remoting component with a scaleable feature set

Country Status (6)

Country Link
US (1) US20070050471A1 (en)
EP (1) EP1920343A4 (en)
JP (1) JP4959706B2 (en)
KR (1) KR20080045117A (en)
CN (1) CN101253490B (en)
WO (1) WO2007027363A1 (en)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8087067B2 (en) 2008-10-21 2011-12-27 Lookout, Inc. Secure mobile platform system
US8533844B2 (en) 2008-10-21 2013-09-10 Lookout, Inc. System and method for security data collection and analysis
US9043919B2 (en) 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
US9367680B2 (en) * 2008-10-21 2016-06-14 Lookout, Inc. System and method for mobile communication device application advisement
US8051480B2 (en) 2008-10-21 2011-11-01 Lookout, Inc. System and method for monitoring and analyzing multiple interfaces and multiple protocols
US9781148B2 (en) 2008-10-21 2017-10-03 Lookout, Inc. Methods and systems for sharing risk responses between collections of mobile communications devices
US8099472B2 (en) 2008-10-21 2012-01-17 Lookout, Inc. System and method for a mobile cross-platform software system
US8108933B2 (en) 2008-10-21 2012-01-31 Lookout, Inc. System and method for attack and malware prevention
US8347386B2 (en) 2008-10-21 2013-01-01 Lookout, Inc. System and method for server-coupled malware prevention
US9235704B2 (en) 2008-10-21 2016-01-12 Lookout, Inc. System and method for a scanning API
US8984628B2 (en) 2008-10-21 2015-03-17 Lookout, Inc. System and method for adverse mobile application identification
US8060936B2 (en) 2008-10-21 2011-11-15 Lookout, Inc. Security status and information display system
US8180905B2 (en) * 2008-12-09 2012-05-15 Microsoft Corporation User-mode based remote desktop protocol (RDP) encoding architecture
US8467768B2 (en) 2009-02-17 2013-06-18 Lookout, Inc. System and method for remotely securing or recovering a mobile device
US9955352B2 (en) 2009-02-17 2018-04-24 Lookout, Inc. Methods and systems for addressing mobile communications devices that are lost or stolen but not yet reported as such
US8538815B2 (en) 2009-02-17 2013-09-17 Lookout, Inc. System and method for mobile device replacement
US9042876B2 (en) 2009-02-17 2015-05-26 Lookout, Inc. System and method for uploading location information based on device movement
US8855601B2 (en) 2009-02-17 2014-10-07 Lookout, Inc. System and method for remotely-initiated audio communication
US8397301B2 (en) 2009-11-18 2013-03-12 Lookout, Inc. System and method for identifying and assessing vulnerabilities on a mobile communication device
US8738765B2 (en) 2011-06-14 2014-05-27 Lookout, Inc. Mobile device DNS optimization
US8788881B2 (en) 2011-08-17 2014-07-22 Lookout, Inc. System and method for mobile device push communications
US9165332B2 (en) 2012-01-27 2015-10-20 Microsoft Technology Licensing, Llc Application licensing using multiple forms of licensing
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US8655307B1 (en) 2012-10-26 2014-02-18 Lookout, Inc. System and method for developing, updating, and using user device behavioral context models to modify user, device, and application state, settings and behavior for enhanced user security
US9208215B2 (en) 2012-12-27 2015-12-08 Lookout, Inc. User classification based on data gathered from a computing device
US9374369B2 (en) 2012-12-28 2016-06-21 Lookout, Inc. Multi-factor authentication and comprehensive login system for client-server networks
US8855599B2 (en) 2012-12-31 2014-10-07 Lookout, Inc. Method and apparatus for auxiliary communications with mobile communications device
US9424409B2 (en) 2013-01-10 2016-08-23 Lookout, Inc. Method and system for protecting privacy and enhancing security on an electronic device
US9642008B2 (en) 2013-10-25 2017-05-02 Lookout, Inc. System and method for creating and assigning a policy for a mobile communications device based on personal data
US9753796B2 (en) 2013-12-06 2017-09-05 Lookout, Inc. Distributed monitoring, evaluation, and response for multiple devices
US10122747B2 (en) 2013-12-06 2018-11-06 Lookout, Inc. Response generation after distributed monitoring and evaluation of multiple devices
JP6260458B2 (en) * 2014-05-30 2018-01-17 京セラドキュメントソリューションズ株式会社 Image forming apparatus, image forming method, and control program
EP3289510B1 (en) 2015-05-01 2020-06-17 Lookout Inc. Determining source of side-loaded software
US10757079B2 (en) * 2016-01-12 2020-08-25 Jens Schmidt Method and system for controlling remote session on computer systems using a virtual channel
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974463A (en) * 1997-06-09 1999-10-26 Compaq Computer Corporation Scaleable network system for remote access of a local network
US20030084128A1 (en) * 2001-11-01 2003-05-01 Flying Wireless, Inc. Local agent for remote file access system
JP2003330728A (en) * 2002-04-15 2003-11-21 Microsoft Corp System and method for custom installation of operating, system on remote client

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758074A (en) * 1994-11-04 1998-05-26 International Business Machines Corporation System for extending the desktop management interface at one node to a network by using pseudo management interface, pseudo component interface and network server interface
US5757925A (en) * 1996-07-23 1998-05-26 Faybishenko; Yaroslav Secure platform independent cross-platform remote execution computer system and method
US5899990A (en) * 1997-03-31 1999-05-04 Sun Microsystems, Inc. Java-to-Database Connectivity Server
US6005568A (en) * 1997-09-30 1999-12-21 The United States Of America As Represented By The Secretary Of The Navy Computer system providing platform independent universal client device
US6910068B2 (en) * 1999-06-11 2005-06-21 Microsoft Corporation XML-based template language for devices and services
US6938080B1 (en) * 2000-06-07 2005-08-30 Nortel Networks Limited Method and computer system for managing data exchanges among a plurality of network nodes in a managed packet network
EP1164482B1 (en) * 2000-06-16 2008-10-22 Microsoft Corporation System and method for interactive communication between objects in a distributed computing environment
US7035912B2 (en) * 2000-08-28 2006-04-25 Abaco.P.R., Inc. Method and apparatus allowing a limited client device to use the full resources of a networked server
US6842777B1 (en) * 2000-10-03 2005-01-11 Raja Singh Tuli Methods and apparatuses for simultaneous access by multiple remote devices
US7177917B2 (en) * 2000-12-27 2007-02-13 Softwired Ag Scaleable message system
US7171444B2 (en) * 2001-11-14 2007-01-30 Sharp Laboratories Of America, Inc. Remote desktop protocol compression system
US7363363B2 (en) * 2002-05-17 2008-04-22 Xds, Inc. System and method for provisioning universal stateless digital and computing services
US7555538B2 (en) * 2002-12-26 2009-06-30 Research In Motion Limited System and method for building and execution of platform-neutral generic services' client applications
US7487437B2 (en) * 2003-04-18 2009-02-03 International Business Machines Corporation System and method in a data table for managing insertion operations in recursive scalable template instances
US7676675B2 (en) * 2003-06-06 2010-03-09 Microsoft Corporation Architecture for connecting a remote client to a local client desktop
WO2005015935A1 (en) * 2003-08-07 2005-02-17 Pervenio Limited Server for determining and storing mobile device capability data
US7475125B2 (en) * 2003-11-24 2009-01-06 Microsoft Corporation Seamless discovery of workstation-installed remote applications from an extranet
US7698383B2 (en) * 2004-02-27 2010-04-13 Research In Motion Limited System and method for building component applications using metadata defined mapping between message and data domains
US20060235715A1 (en) * 2005-01-14 2006-10-19 Abrams Carl E Sharable multi-tenant reference data utility and methods of operation of same
EP1703382A1 (en) * 2005-03-16 2006-09-20 Sun Microsystems, Inc. Method for loading applications to a mobile device
US20080052396A1 (en) * 2006-08-22 2008-02-28 Motorola, Inc. Providing a service from an application service provider to a client in a communication system
US8019812B2 (en) * 2007-04-13 2011-09-13 Microsoft Corporation Extensible and programmable multi-tenant service architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974463A (en) * 1997-06-09 1999-10-26 Compaq Computer Corporation Scaleable network system for remote access of a local network
US20030084128A1 (en) * 2001-11-01 2003-05-01 Flying Wireless, Inc. Local agent for remote file access system
JP2003330728A (en) * 2002-04-15 2003-11-21 Microsoft Corp System and method for custom installation of operating, system on remote client

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1920343A4 *

Also Published As

Publication number Publication date
CN101253490A (en) 2008-08-27
US20070050471A1 (en) 2007-03-01
KR20080045117A (en) 2008-05-22
CN101253490B (en) 2011-06-08
JP2009506717A (en) 2009-02-12
JP4959706B2 (en) 2012-06-27
EP1920343A4 (en) 2010-04-14
EP1920343A1 (en) 2008-05-14

Similar Documents

Publication Publication Date Title
US20070050471A1 (en) Portable Remoting Component With A Scaleable Feature Set
EP1521427B1 (en) Systems and methods for determining remote device media capabilities
US10721282B2 (en) Media acceleration for virtual computing services
US7346689B1 (en) Computer architecture having a stateless human interface device and methods of use
US20160381370A9 (en) System and method for low bandwidth display information transport
US20150077509A1 (en) System for a Virtual Multipoint Control Unit for Unified Communications
WO2012065415A1 (en) Terminal, system and service providing method based on virtualization techniques
US20080307048A1 (en) Method and System for Operating Applications for Remote Terminal Devices
US20150201085A1 (en) Seamlessly transferring a communication
CN111803940A (en) Game processing method and device, electronic equipment and computer-readable storage medium
US8432966B2 (en) Communication apparatus and control method for communication apparatus
CN1671108A (en) Client provisioning with flag parameters
CN102770827B (en) Method for showing multimedia content on the screen of terminal
CN1570904A (en) Mobile remote computer access and control system and method thereof
CN1918930A (en) Apparatus and method for communicating between cellular modem software and application engine software of a communications device
Roman et al. Integrating PDAs into distributed systems: 2k and PalmORB
Lu et al. A generic application sharing architecture based on message-oriented middleware platform
US20100232420A1 (en) Communication apparatus and related method
CN114339112B (en) Video call method, electronic equipment and system
Honda et al. Thin client technology for mobile service platform
KR20050043021A (en) Mobile terminal having session initiation protocol/instant messaging and presence service dynamic linking library on wireless internet platform
Mauve Protocol Enhancement and Compression for X-Based Application Sharing
CN113067997A (en) Method and device for real-time video call
Yerunkar et al. Implementing methodologies for achieving a communication channel between a mobile phone and a remote computer
Romean et al. Integrating PDAs into Distributed Systems: ОУ and PalmORB

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200680031442.6

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: KR

WWE Wipo information: entry into national phase

Ref document number: 2006800779

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2008529049

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE