Automatic log-in function control

Technologies are generally described for an automatic log-in function control scheme. In some examples, a method performed under control of an end device may include detecting, from the end device, input of one or more passcodes to access the end device; determining that a user of the end device is not an authorized user based at least in part on a detected behavioral pattern in connection with the input of the one or more passcodes; and disabling an automatic log-in function of at least one application that is hosted on the end device.

CROSS-REFERENCE TO RELATED APPLICATION

This Application is the U.S. National Stage filing under 35 U.S.C. §371 of International Application No. PCT/US2013/054123 filed on Aug. 8, 2013. The disclosure of the International Application is hereby incorporated herein by reference in its entirety.

BACKGROUND

Generally, cloud computing refers to accessing at least one of multiple server-based computational resources using a network, such as the Internet, for the purposes of data retrieval, data processing or data storage. For cloud computing services, applications may be provided and managed by a cloud server, and associated data may be stored remotely in a cloud database. Users may be provided with cloud computing services through their own mobile devices, such as a smartphone.

SUMMARY

In an example, a method performed under control of an end device may include detecting, from the end device, input of one or more passcodes to access the end device; determining that a user of the end device is not an authorized user based at least in part on a detected behavioral pattern in connection with the input of the one or more passcodes; and disabling an automatic log-in function of at least one application that is hosted on the end device.

In another example, an end device may include a processor; an internal memory; an input unit configured to detect, from the end device, input of one or more passcodes to access the end device; and an operating system, stored in the internal memory, that, in response to execution, causes the processor to perform operations including: determining that a user of the end device is not an authorized user based at least in part on a detected behavioral pattern in connection with the input of the one or more passcodes; and controlling disability of an automatic log-in function of at least one application that is hosted on the end device.

In yet another example, a computer-readable storage medium may store thereon computer-executable instructions that, in response to execution, cause an operating system that is stored in an end device to perform operations including detecting, from the end device, input of one or more passcodes to access the end device; determining that a user of the end device is not an authorized user based at least in part on a detected behavioral pattern in connection with the input of the one or more passcodes; and disabling an automatic log-in function of at least one application that is hosted on the end device.

DETAILED DESCRIPTION

This disclosure is generally drawn, inter alia, to methods, apparatuses, systems, devices, and computer program products related to schemes for controlling an automatic log-in function for at least one application. Technologies are generally described for disabling an automatic log-in function for at least one application that is hosted on an end device when a current user is not an authorized user of the end device.

In some examples, a user may attempt to access an end device that is in a locked state. By way of example, the user may enter one or more passcodes and/or password gesture patterns on a touchscreen. If the passcodes and/or password gesture patterns do not correspond to a currently-valid passcode and/or password gesture pattern which is stored in a memory of the end device, the end device remains locked and the user is not able to access the end device. Meanwhile, the end device may store the one or more entered invalid passcodes or password gesture patterns in the memory.

If the user gets permission to access to the end device by chance (e.g., the user enters the currently-valid passcode and/or password gesture pattern by chance) after at least a threshold number of inputs of invalid passcodes or password gesture patterns, the end device may match at least some of the invalid passcodes and/or password gesture patterns to those stored in memory, prior to the user gaining access to the end device. Thus, the end device may then determine that the user is not an authorized user of the end device based on the matched invalid passcodes and/or password gesture patterns. By way of example, if the matched invalid passcodes are randomly generated or if the matched invalid passcodes are similar to the currently-valid passcode or the same as a previously-used passcode, the end device may determine that the user is not an authorized user of the end device.

Then, the end device may disable an automatic log-in function for at least one application that is hosted on the end device when the user is determined to be not an authorized user.

FIG. 1schematically shows an illustrative example of an end device for implementing an automatic log-in function control scheme, arranged in accordance with at least some embodiments described herein. As depicted inFIG. 1, an end device110may be in a locked state, as indicated on a touch screen115which is operatively coupled to end device110. End device110may be any type of electronic device configured to store, retrieve, compute, transmit and/or receive data, including, for example, a smartphone, a mobile phone, a personal digital assistant (PDA), a tablet, a laptop computer, etc.

In some embodiments, at least one application (for example, at least one application of an application group120) may be hosted and operated on end device110. Alternatively, end device110may be communicatively connected to a cloud system (not illustrated inFIG. 1) via a network so that the at least one application (for example, at least one application of application group120) may be operated on end device110by the cloud system. By way of example, but not limitation, the network between end device110and the cloud system may include all kinds of wireless networks, non-limiting examples of which may include a mobile radio communication network, a satellite network, a bluetooth, WiBro (Wireless Broadband Internet), Mobile WiMAX, HSDPA (High Speed Downlink Packet Access) or the like. The cloud system may refer to a cloud server or a cloud configuration that provides some type of communications, data storage, data or information processing, or any combination thereof.

In some embodiments, a user or person who currently possesses end device110may try to access end device110, which is in a locked state. By way of example, but not limitation, as depicted inFIG. 1, the user may enter one or more passcodes to access end device110. Alternatively, the user may enter one or more password gesture patterns to access end device110. In yet another examples, biometric technologies, such as a facial recognition technology or an iris recognition technology, may be used instead of the passcodes. Further, any other user verification means, which will be available according to the technology development, may be used instead of the passcodes.

If the one or more passcodes and/or password gesture patterns that are input by the user do not correspond to a currently-valid passcode, which is pre-registered and stored in a memory of end device110, end device110will not allow the user to access end device110.

Further, end device110may be configured to store the one or more passcodes and/or password gesture patterns that were input by the user in memory. If the user inputs multiple sets of passcodes and/or password gesture patterns continuously or intermittently, end device110may be configured to store the multiple sets of passcodes and/or password gesture patterns in memory.

Even with the user inputting the one or more invalid passcodes and/or password gesture patterns, there still remains a chance that the user may coincidentally enter the currently-valid passcode. Then, as depicted inFIG. 1, end device110may be unlocked, as depicted on touch screen115by displaying one or more active application icons thereon. End device110may be configured to detect the input of one or more passcodes and/or password gesture patterns that may be stored in the memory of end device110. Thus, end device110may be configured to match the previously entered passcodes and/or password gesture patterns that were input prior to the user entering the currently-valid passcode with those that are previously stored.

Based on the aforementioned matching, end device110may be further configured to determine whether the user of end device110is an authorized user or not by, at least in part, determining a behavioral pattern in connection with the input of one or more passcodes and/or password gesture patterns. According to some embodiments, end device110may be configured to compare the detected one or more passcodes and/or password gesture patterns with the currently-valid passcode and/or password gesture patterns. End device110may be configured to then determine that the user of end device110is not an authorized user of end device110when the one or more passcodes and/or password gesture patterns are determined to be randomly generated. By way of example, but not limitation, if all of digits included in the previously input passcodes are different from one input passcode to the next, end device110may determine that the input passcodes, which were input prior to entry of the currently-valid passcode, were randomly generated. Thus, access to one or more of the applications may be at least temporarily denied.

Further, in some embodiments, end device110may be configured to recognize both a trace (e.g., at least one of direction or length) of the detected one or more password gesture patterns and a trace of the currently-valid password gesture patterns. By way of example, but not limitation, end device110may recognize the traces by using any of multiple touch sensitivity technologies, including capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch screen. End device110may be further configured to calculate a similarity between the trace of the detected one or more password gesture patterns and the trace of the currently-valid password gesture patterns. End device110may compare the similarity with a predetermined value stored in memory and if the similarity is lower than the predetermined value, end device110may determine that the input password gesture patterns, which were input prior to entry of the currently-valid password gesture patterns, were randomly generated. The predetermined value may be a default value or a variable value set according to security requirement for end device110.

According to some other embodiments, end device110may be configured to compare the detected one or more passcodes and/or password gesture patterns with the currently-valid passcode and/or password gesture patterns. End device110may be configured to then determine that the user of end device110is not an authorized user of end device110when the one or more passcodes and/or password gesture patterns are determined to be similar but not identical to the currently-valid passcodes and/or password gesture patterns. By way of example, if a part (e.g., one or two numbers) of the digits included in the previously input passcodes is different from digits included in the currently-valid passcodes, end device110may determine that the input passcodes, which were input prior to entry of the currently-valid passcode, are similar to the currently-valid passcodes. Thus, access to one or more of the applications may be at least temporarily denied.

In some other embodiments, end device110may be configured to determine that the user of end device110is not an authorized user when the one or more passcodes and/or password gesture patterns are determined to be the same as a previously-valid passcode or password gesture pattern. By way of example, but not limitation, if a valid passcode and/or password gesture pattern for accessing end device110has been changed, the previously valid passcode and/or password gesture pattern may be stored in a memory of end device110. Accordingly, end device110may be configured to compare the detected passcodes and/or password gesture patterns with the stored previously-valid passcodes and/or password gesture patterns. Positive comparisons may result in a determination that the user of end device110is not an authorized user if the detected passcodes and/or password gesture patterns are the same as the previously-valid passcodes and/or password gesture patterns.

Further, end device110, e.g., an operating system thereof, may be configured to disable an automatic log-in function of the at least one application that is hosted on and/or stored on end device110when the user of end device110is determined to be an unauthorized user. In some embodiments, if the at least one application is activated on end device110, end device110may be configured to transmit, to the at least one application, an instruction to disable the automatic log-in function for the at least one application. The instruction may be transmitted from end device110to the application based at least in part on a predefined protocol between the at least one application and an operating system of end device110. The instruction may indicate that the user of end device110is not an authorized user. The application may be configured to disable the automatic log-in function in response to receipt of the instruction.

FIG. 2shows a schematic block diagram illustrating an example architecture of end device110for implementing an automatic log-in function control scheme, arranged in accordance with at least some embodiments described herein. As depicted inFIG. 2, end device110may include an input unit210, an operating system220, a processor230and an application240. Operating system220and application240may be stored in an internal memory of end device110or a memory which is operatively connected to end device110. Although illustrated as discrete components, various components may be divided into additional components, combined into fewer components, or eliminated altogether while being contemplated within the scope of the disclosed subject matter. It will be understood by those skilled in the art that each function and/or operation of the components may be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof.

Input unit210may be configured to detect an input of one or more passcodes and/or password gesture patterns, to end device110. In some embodiments, if a user of end device110enters passcodes and/or password gesture patterns, end device110may store the passcodes and/or password gesture patterns in an internal memory of end device110or a memory which is operatively connected to end device110. Further, when the user enters a currently-valid passcode and/or password gesture pattern to access end device110and end device110becomes unlocked, end device110may be configured to detect, from the memory of end device110, the passcodes and/or password gesture patterns that were input by the user before the user entered the currently-valid passcode and/or password gesture pattern.

Operating system220may be configured to manipulate processor230to implement the automatic log-in function control scheme as described herein. Application240may be hosted and operated on end device110. Alternatively, application240may be operated on end device110by a cloud system that is communicatively connected to end device110.

FIG. 3shows a schematic block diagram illustrating an example architecture of operating system220for implementing an automatic log-in function control scheme, arranged in accordance with at least some embodiments described herein. As depicted inFIG. 3, operating system220may include a user determination component310and an automatic log-in function control component320. Further, automatic log-in function control component320may include an automatic log-in function disabling component321and an application control component322. Although illustrated as discrete components, various components may be divided into additional components, combined into fewer components, or eliminated altogether while being contemplated within the scope of the disclosed subject matter. It will be understood by those skilled in the art that each function and/or operation of the components may be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof.

User determination component310may be configured to determine that even a user who is able to access end device110may not be an authorized user, based at least in part on a detected behavioral pattern in connection with the input of the one or more passcodes and/or password gesture patterns that were entered by the user prior to entering a currently-valid passcode and/or password gesture pattern. User determination component310may be configured to compare the detected one or more passcodes and/or password gesture patterns with the currently-valid passcode and/or password gesture pattern. User determination component310may be configured to determine that the user of end device110is not an authorized user when the one or more passcodes and/or password gesture patterns are detected to be randomly generated, upon comparing. According to some embodiments, user determination component310may be configured to determine that the user of end device110is not an authorized user of end device110when the one or more passcodes and/or password gesture patterns that were entered by the user prior to entering the currently-valid passcode and/or password gesture pattern are determined to be randomly generated. By way of example, but not limitation, if all of digits included in the previously input passcodes are different from digits included in the currently-valid passcodes, user determination component310may determine that the input passcodes, which were input prior to entry of the currently-valid passcode, were randomly generated.

According to some other embodiments, user determination component310may be configured to then determine that the user of end device110is not an authorized user of end device110when the one or more passcodes and/or password gesture patterns are determined to be similar to the currently-valid passcodes and/or password gesture patterns. By way of example, if a part (e.g., one or two numbers) of the digits included in the previously input passcodes is different from digits included in the currently-valid passcodes, end device110may determine that the input passcodes, which were input prior to entry of the currently-valid passcode, are similar to the currently-valid passcodes.

In some other embodiments, user determination component310may be configured to determine that the user of end device110is not an authorized user when the one or more passcodes and/or password gesture patterns are determined to be the same as a previously-valid passcode or password gesture pattern. By way of example, but not limitation, if a valid passcode and/or password gesture pattern for accessing end device110has been changed, the previously valid passcode and/or password gesture pattern may be stored in a memory of end device110. Accordingly, user determination component310may be configured to compare the detected passcodes and/or password gesture patterns with the stored previously-valid passcodes and/or password gesture patterns. Positive comparisons may result in a determination that the user of end device110is not an authorized user if the detected passcodes and/or password gesture patterns are the same as the previously-valid passcodes and/or password gesture patterns.

In some embodiments, automatic log-in function control component320may be configured to control disability of an automatic log-in function of application240when the user of end device110is determined to be an unauthorized user. Automatic log-in function disabling component321may be configured to disable the automatic log-in function for application240when the user of end device110is determined to be an unauthorized user. Application control component322may be configured to transmit, to application240, via a predefined protocol between application240and operating system220, an instruction to disable the automatic log-in function for application240. By way of example, but not limitation, if application240is activated on end device110, application control component322may be configured to transmit, to application240, the instruction indicating that the user of end device110is not an authorized user. Then, application240may be configured to disable the automatic log-in function in response to receipt of the instruction.

FIG. 4shows an example flow diagram of a process400for end device110for implementing an automatic log-in function control scheme, arranged in accordance with at least some embodiments described herein. Process400may be implemented in or by end device110including input unit210, operating system220, processor230and application240, as illustrated inFIG. 2. Process400may also be implemented by operating system220stored in end device110.

Process400may include one or more operations, actions, or functions as illustrated by one or more blocks410,420and/or430. Although illustrated as discrete blocks, various blocks may be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the desired implementation. Processing may begin at block410.

At block410(Detect Input of Passcodes), end device110may be configured to detect an input of one or more passcodes and/or password gesture patterns. In some embodiments, if a user of end device110enters multiple passcodes and/or password gesture patterns, end device110may store the passcodes and/or password gesture patterns in an internal memory of end device110or a memory that is operatively connected to end device110. Further, when the user enters a currently-valid passcode and/or password gesture pattern to access end device110so as to unlock end device110, end device110may still be configured to compare the passcodes and/or password gesture patterns that were input by the user before the user entered the currently-used passcode with those stored in memory. Processing may proceed from block410to block420.

At block420(Determine that User of End Device is not Authorized User), end device110and/or operating system220may determine that even a user who accesses end device110may not an authorized user, based at least in part on a detected behavioral pattern in connection with the input of the one or more passcodes and/or password gesture patterns detected at block410. At block420, end device110and/or operating system220may compare the detected one or more passcodes and/or password gesture patterns with the currently-valid passcodes and determine that the user is not an authorized user according to the comparing result. Processing may proceed from block420to block430.

At block430(Disable Automatic Log-in Function of Application), end device110and/or operating system220may disable an automatic log-in function of at least one application hosted on end device110when the user of end device110is determined to be an unauthorized user at block420.

In some embodiments, end device110and/or operating system220, itself, may be configured to disable the automatic log-in function for the at least one application. In some embodiments, end device110and/or operating system220may transmit, to the at least one application via a predefined protocol between the at least one application and end device110and/or operating system220, an instruction to disable the automatic log-in function. By way of example, but not limitation, if the at least one application is activated on end device110, end device110may transmit, to the at least one application, the instruction indicating that the user of end device110is not an authorized user. Then, the at least one application may disable the automatic log-in function in response to receipt of the instruction.

FIG. 5shows a specific example flow diagram of a sub-process400for an end device110for implementing an automatic log-in function control scheme, arranged in accordance with at least some embodiments described herein. Process400may include one or more operations, actions, or functions as illustrated by one or more blocks410,421,422,423and/or430. Although illustrated as discrete blocks, various blocks may be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the desired implementation. Processing may begin at block410.

At block410(Detect Input of Passcodes), end device110may be configured to detect an input of one or more passcodes and/or password gesture patterns. In some embodiments, if a user of end device110enters passcodes and/or password gesture patterns, end device110may store the passcodes and/or password gesture patterns in an internal memory of end device110or a memory which is operatively connected to end device110. Further, when the user enters a currently-valid passcode and/or password gesture pattern to unlock end device110, end device110may be configured to compare the passcodes and/or password gesture patterns that are input by the user before the user entered the currently-used passcode with those stored in memory. Processing may proceed from block410to block421.

At block421(Determine that Detected Passcodes are Randomly Generated), end device110may compare the one or more passcodes and/or password gesture patterns detected at block410with a currently-valid passcode and/or password gesture pattern stored in a memory. End device110may determine whether the detected one or more passcodes and/or password gesture patterns are randomly generated, upon comparing. End device110may determine that the user of end device110is not an authorized user of end device110when the one or more passcodes and/or password gesture patterns that were entered by the user prior to entering the currently-valid passcode and/or password gesture pattern are determined to be randomly generated. By way of example, but not limitation, if all of digits included in the previously input passcodes are different from digits included in the currently-valid passcode, end device110may determine that the input passcodes, which were input prior to entry of the currently-valid passcode, were randomly generated. So, the user may be determined to be an unauthorized user of end device110. If end device110determines, at block421, that the detected passcodes and/or password gesture patterns are randomly generated, processing may proceed to block430, while if end device110determines that the detected passcodes and/or password gesture patterns are not randomly generated, processing may proceed to block422.

At block422(Determine that Detected Passcodes are Similar to Currently-used Passcodes), end device110may compare the one or more passcodes and/or password gesture patterns detected at block410with the currently-used passcode stored in the memory. End device110may determine whether the detected one or more passcodes and/or password gesture patterns are similar to the currently-used passcodes, upon comparing. End device110may determine that the user of end device110is not an authorized user of end device110when the one or more passcodes and/or password gesture patterns are determined to be similar to the currently-valid passcodes and/or password gesture patterns. By way of example, if a part (e.g., one or two numbers) of the digits included in the previously input passcodes is different from digits included in the currently-valid passcode, end device110may determine that the input passcodes, which were input prior to entry of the currently-valid passcodes, are similar to the currently-valid passcodes. So, the user may be determined to be an unauthorized user of end device110. If end device110determines, at block422, that the detected passcodes and/or password gesture patterns are similar to the currently-used passcode, processing may proceed to block430, while if end device110determines that the detected passcodes and/or password gesture patterns are not similar to the currently-used passcodes, processing may proceed to block423.

At block423(Determine that Detected Passcodes are the Same as Previously-used Passcodes), end device110may compare the one or more passcodes detected and/or password gesture patterns at block410with previously-used passcodes that are stored in the memory. End device110may determine that the user of end device110is not an authorized user when the one or more passcodes and/or password gesture patterns are determined to be the same as a previously-valid passcode or password gesture pattern. By way of example, but not limitation, if a valid passcode and/or password gesture pattern for accessing end device110has been changed, the previously valid passcode and/or password gesture pattern may be stored in a memory of end device110. Accordingly, end device110may compare the detected passcodes and/or password gesture patterns with the stored previously-valid passcodes and/or password gesture patterns. Positive comparisons may result in a determination that the user of end device110is not an authorized user if the passcodes and/or password gesture patterns detected at block410are the same as the previously-valid passcodes and/or password gesture patterns. If end device110determines, at block423, that the detected passcodes and/or password gesture patterns are the same as the previously-used passcodes and/or password gesture patterns, processing may proceed to block430.

At block430(Disable Automatic Log-in Function of Application), end device110and/or operating system220may disable an automatic log-in function of at least one application hosted on end device110.

FIG. 6illustrates computer program product600that may be utilized to implement an automatic log-in function control scheme, arranged in accordance with at least some embodiments described herein.

Computer program product600may be hosted by an end device, such as end device110. As depicted inFIG. 6, computer program product600may include a signal bearing medium610. Signal bearing medium610may include one or more instructions620that, when executed by, for example, a processor, may provide the functionality described above with respect toFIGS. 1-5. By way of example, but not limitation, instructions620may include: one or more instructions for detecting, from an end device, input of one or more passcodes to access the end device; one or more instructions for determining that a user of the end device is not an authorized user based at least in part on a detected behavioral pattern in connection with the input of the one or more passcodes; one or more instructions for disabling an automatic log-in function of at least one application that is hosted on the end device. Thus, for example, referring toFIGS. 1-5, end device110and/or operating system220may undertake one or more of the blocks shown inFIGS. 4-5in response to instructions620.

In some implementations, signal bearing medium610may encompass a computer-readable medium630, such as, but not limited to, a hard disk drive (HDD), a compact disc (CD), a digital versatile disk (DVD), a digital tape, memory, etc. In some implementations, signal bearing medium610may encompass a recordable medium640, such as, but not limited to, memory, read/write (R/W) CDs, R/W DVDs, etc. In some implementations, signal bearing medium610may encompass a communications medium650, such as, but not limited to, a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communication link, a wireless communication link, etc.). Thus, for example, computer program product600may be conveyed to one or more modules of end device110by an RF signal bearing medium620, where the signal bearing medium620is conveyed by a wireless communications medium650(e.g., a wireless communications medium conforming with the IEEE 802.11 standard).

FIG. 7is a block diagram illustrating an example computing device that may be utilized to implement an automatic log-in function control scheme, arranged in accordance with at least some embodiments described herein. In these examples, elements of computing device700may be arranged or configured for a device. In a very basic configuration702, computing device700typically includes one or more processors704and a system memory706. A memory bus708may be used for communicating between processor704and system memory706.

Depending on the desired configuration, processor704may be of any type including but not limited to a microprocessor (μP), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof. Processor704may include one or more levels of caching, such as a level one cache710and a level two cache712, a processor core714, and registers716. An example processor core714may include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP core), or any combination thereof. An example memory controller718may also be used with processor704, or in some implementations, memory controller718may be an internal part of processor704.

Depending on the desired configuration, system memory706may be of any type including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.) or any combination thereof. System memory706may include an operating system720, an application722, and program data724. Application722may include instructions726that may be arranged to perform the functions as described herein including the actions described with respect to end device architecture as shown inFIG. 2or including the actions described with respect to the flow charts shown inFIG. 5. In some examples, application722may be arranged to operate with program data724on an operating system720such that the automatic log-in function control scheme as described herein may be provided.

Computing device700may have additional features or functionality, and additional interfaces to facilitate communications between basic configuration702and any required devices and interfaces. For example, a bus/interface controller730may be used to facilitate communications between basic configuration702and one or more data storage devices732via a storage interface bus734. Data storage devices732may be removable storage devices736, non-removable storage devices738, or a combination thereof. Examples of removable storage and non-removable storage devices include magnetic disk devices such as flexible disk drives and hard-disk drives (HDD), optical disk drives such as compact disk (CD) drives or digital versatile disk (DVD) drives, solid state drives (SSD), and tape drives to name a few. Example computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data.

Computing device700may also include an interface bus740for facilitating communication from various interface devices (e.g., output devices742, peripheral interfaces744, and communication devices746) to basic configuration702via bus/interface controller730. Example output devices742include a graphics processing unit748and an audio processing unit750, which may be configured to communicate to various external devices such as a display or speakers via one or more A/V ports752. Example peripheral interfaces744include a serial interface controller754or a parallel interface controller756, which may be configured to communicate with external devices such as input devices (e.g., keyboard, mouse, pen, voice input device, touch input device, etc.) or other peripheral devices (e.g., printer, scanner, etc.) via one or more I/O ports758. An example communication device746includes a network controller760, which may be arranged to facilitate communications with one or more other computing devices762over a network communication link via one or more communication ports764.