1 PROBLEM STATEMENT To develop a GPRS (General Packet Radio Service) based Personal Computer accessing system using mobile that enables user to access and modify data on the remote PC and to take complete control over it. The conventional systems use only the blue tooth technology. But our proposed system is designed to be operated over the GPRS which eliminates the distance measurement of the mobile from the PC except for the presence of GPRS facility. 1.2 EXPLANATION OF THE PROBLEM The system is developed using Sun Java application Server and J2ME midlet. The system is developed in different modules to enable reusability and flexibility of modification. The first module is to establish a http connection between the server and the client using the IP address and port number. The second module is to authenticate the user based upon the username and password given by the user. Once the connection and authentication is performed the next module is to respond to the client with the desktop images every t second time interval. In the succeeding module all the event capturing and event handling functions are implemented. Certain hot keys are provided for easy accessing of the various functions.


1.3 OBJECTIVE OF THE PROJECT The major objective of our project is to make the handheld devices more versatile and constructive by making it possible to access the remote PC from them using the GPRS technology. This empowers the user with access to his PC on the go from anywhere in the world with just a mobile. 1.4 SCOPE OF THE PROJECT The system is developed to serve as the empowering tool for the users. The system enables remote desktop access from just a GPRS enabled mobile. The connection can be established provided the system is in the switched on state and the server running on it. 1.5 ORGANIZATION OF THE REPORT CHAPTER 2: LITERATURE REVIEW This chapter gives an idea of the software and the tools used to develop our project. This chapter also explains briefly about the domain of the project. CHAPTER 3: SYSTEM DESIGN This chapter moves through the design phase of the project.It Illustrates the consummate structural frame work of the project. The various sequence of steps that takes place in order are

explained diagrammatically in this section. The scenarios are also illustrated pictorially. The individual functions along with the attributes are clearly explained. CHAPTER 4: IMPLEMENTATION This chapter gives a detailed description about the modules implemented in our project. It further includes the algorithms used to implement the modules. CHAPTER 5: CODING AND TESTING This chapter illustrates the various methods and classes used in the implementation of the project and the testing strategies adopted to test the software. CHAPTER 6: CONCLUSION AND FUTURE ENHANCEMENT This chapter gives an overview of the project completion and also about the future enhancements that shall be included in the project in the near future.


for CDMA based mobile phones (Qualcomm Inc. (ii) J2ME.2 Palm OS 4 . and BREW Distribution System (BDS) that is controlled and managed by operators enabling them to easily get applications from developers to market and coordinate the billing and payment process. Five of the most popular are (i) BREW. They apply different approaches to accomplish the development of mobile applications. application distribution. CDMA is a digital wireless telephony transmission technique and its standards used for 2G mobile telephony are the IS-95 standards championed by Qualcomm. and (v) Windows Mobile. device configuration.CHAPTER 2 LITERATURE SURVEY The mobile client must be loaded with an application which makes it possible to communicate with the server and access the Personal Computer. BREW is a complete. 2003). (iv) Symbian OS. (iii) Palm OS. end-to-end solution for wireless applications development.. and billing and payment. 2. 2. The complete BREW solution includes BREW SDK (software development kit) for application developers.1 BREW (Binary Runtime Environment for Wireless) BREW is an application development platform created by Qualcomm Inc. Various environments/languages are available for client-side handheld programming. BREW client software and porting tools for device manufacturers.

. It is an independent. forprofit company whose mission is to establish Symbian OS as the world standard for mobile digital data systems. 2002). open.11b local wireless and GSM. and support for a broad range of screen resolutions including QVGA. It supports many important wireless standards. improved network communication. 32bit operating system running on handheld devices (Palm Source Inc. standard operating system—Symbian OS—for data-enabled mobile phones (Symbian Ltd. primarily for use in cellular telecommunication. Two major versions of PalmOS are currently under development: Palm OS Garnet: It is an enhanced version of Palm OS 5 and provides features such as dynamic input area. Palm OS Cobalt: It is Palm OS 6.Palm OS. such as its long battery life. The plain design of the Palm OS has resulted in a long battery life. which focuses on enabling faster and more efficient development of smart phones and integrated wireless (WiFi/Bluetooth) handhelds. 2. is a fully ARM-native. support for a wide variety of wireless standards. Mobitex. Symbian OS includes a multi-tasking multithreaded 5 .. 2005). approximately twice that of its rivals. is a software licensing company that develops and supplies the advanced.. including Bluetooth and 802.3 Symbian OS Symbian Ltd. developed by Palm Source Inc. and CDMA wide area wireless networks. Its popularity can be attributed to its many advantages. and the abundant software available. Palm OS runs on almost two out of every three PDAs.

which is a range of operating systems developed by Psion for handheld devices. but also integratesPDA-type functionality. and wireless communications.core. application engines. into a voice-centric handset. data services enablers. Windows Mobile includes three major kinds of software: 2. browse the Web. Portable Media Centers: 6 . exchange text messages with MSN Messenger. a user interface framework. It is a descendant of EPOC. However. games. 2. music. a version of the Microsoft Windows operating system designed specially for a variety of embedded products. possibly due to the way that Windows CE was adapted for handheld devices from other Microsoft 32-bit desktop operating systems. appointments. it was not well received primarily because of batteryhungry hardware and limited functionality. Smartphones: Smartphone supplies functions of a mobile phone.4 Windows Mobile Windows Mobile is a compact operating system for mobile devices based on the Microsoft Win32 API (Microsoft Corp. such as emails..5 Pocket PCs: Pocket PC enables you to store and retrieve e-mail. and so on. Microsoft launched Windows CE. integrated PIM functionality. instant messages. In 1996. It is designed to be similar to desktop versions of Windows. 2005). contacts. including handheld devices. and Web surfing.

doubling about every year and a half. music. and most mobile phones today are capable of browsing the Internet and running a Java virtual machine. electronic machine that is designed to be held in one hand. Other devices run operating systems specially 7 . What makes our project feasible? Handheld Device: A handheld device as a computerized. and photos transferred from Microsoft Windows XP based PC anywhere. which is as fast as the PCs of just 4 years ago. and the size of their memories. pagers. almost any application that could be imagined running on a PC will find adequate performance on a handheld device. is following the well-known Moore’s law for computers. and Personal Digital Assistants (PDAs) such as the Newton. Therefore. Manufacturers are pushing towards so-called Smartphones for which a variety of applications can be downloaded. The definition clearly includes calculators.Portable Media Centers let users take recorded TV programs. Some Smartphones provide PalmOS or Windows CE operating systems and user interfaces. Phone manufacturers are adding more functions and capabilities to phones. mobile phones (generally called ‘cell phones’ in the US). Processors in mobile phones are also getting faster. Palm and PocketPC. though such devices usually have a larger form-factor than conventional mobile phones. organizers. home videos. In fact. just like for PDAs. the speed of the processors for handhelds. Today’s PDAs often run at 400 MHz. Advances with handhelds Handheld devices are getting more powerful. movies.

One reason for the great success of the first Palm. laptops were starting to get access to wireless technologies such as 802. A problem with Wi-Fi. where the handheld may be at some distance from the device to be controlled. in about 2000. Now. This makes communicating using IR inappropriate for most of the scenarios described in this article.11b. Newer phones also include cameras. and smaller Wi-Fi cards (such as the CompactFlash form-factor) allowed Wi-Fi to be used with more handheld devices. getting Wi-Fi required using a PC card (also called PCMCIA) for a laptop. Few of the early handheld devices could accept a PC card. voice recognition. but did not become widespread until around 2000. however. was that it could easily synchronize all of its data with a desktop computer using a one-button HotSynce. Eventually. and may not be pointing to it. Limitations of IR include that the handheld must be carefully aimed at the receiver.designed for mobile phones. Advances with communication technology The first model of the Apple Newton only provided connectivity with other computers as an extra-cost option. and the IR in handhelds tend to be very short ranged. Using Wi-Fi communication on a current iPaq 5455 drains the 8 . released in 1996. Often the sending and receiving devices need to be less than 2 ft apart. PalmOS devices had built-in infrared wireless communication starting about 1998. Meanwhile. The most popular version is 802. touch screens. which is now also called ‘Wi-Fi’.11. and other technologies. which first appeared around 1994. it is possible to get Wi-Fi access on many different kinds of PDAs. such as Symbian. Initially. which allowed Palms to ‘beam’ information to each other. and none had driver support for Wi-Fi cards until the Compaq iPaq. handhelds with built-in Wi-Fi appeared. continues to be its high power usage.

and are becoming particularly common in the mobile phone market. To deliver the cutting edge features in the PCs. With the outburst in technology. Fascinatingly. BlueTooth is used primarily for connecting one device to one other device— such as a handheld to a personal computer Another wireless technology is the mobile phone network or GPRS.. the BlueTooth radio network technology was designed from the beginning to have low power usage.1 EVOLUTION OF J2ME For the past decade or two. it is easy to get data rates at 19. Unlike Wi-Fi. which connects devices to the internet. This rendered the desktop PCs immobile.6 J2ME 2. Other radio technologies have addressed the power problem. but the standard was not released until 1998 with the technology not becoming widespread until 2003. Handheld devices with built-in BlueTooth are now available. the computing world was entirely dominated by desktop machines. the scenario has undergone a dramatic change.2 kbps. thus leading to the advent of mobile devices such as PDAs. Currently. this miniaturization has occurred not 9 . The mobile network is increasingly able to carry data. BlueTooth research started in 1994. Initially these features sufficed the needs of end user. But today. and therefore is relevant to handhelds interfacing with other technology.6. the hardware size of handheld devices has gone down. a comparatively bulkier hardware was needed. with some phone companies offering about 100 kbps with specialized interface cards 2.battery in less than an hour. palmtops and to the extent mobile phones.

the end user cannot himself install applications to suit his needs. MAC and SOLARIS etc. To do so. This is primarily due to the emergence of quite a number of operating systems like LINUX. the focus of developers was primarily to impart portability between the platforms. This raised a question amidst the developers as to why java could not be ported into the mobile devices. portability remained a big question mark. This to an extent made the desktop PC applications portable. hampering the portability. The practical feasibility of the above procedure seemed cumbersome. The storming entry of JAVA into the software industry broke the barrier of platform dependence. Java 2 Micro Edition was introduced. Many such devices for example a mobile phone has no option to download and install software beyond what was configured 10 .at the cost of reduction in their computational ability. At this juncture. 2. Till few years back. user needs the technical assistance offered by the device manufactures. The practical inability with the cloning of J2SE into a mobile device is the constraints looming over the memory. An application developed for a particular pattern may not be compatible with the other platforms. And moreover.6. even with radical changes in the desktop PCs segment. This has bridged the large gap that existed between the two dimensions of computing.2 J2ME –A GLANCE J2ME is aimed primarily at consumer devices with limited computational ability. So a modified version of Java. Since this is not the case for the mobile devices as each manufacturer prefer their own operating system in their devices.

and mainstream personal digital assistants. an implementation of J2ME. download or install Java Applications and its content. pagers. Now the Application installation became even simpler. The Connected Limited Device Configuration (CLDC) defines the base set of application programming interfaces and a virtual machine for resourceconstrained devices like mobile phones. and graphical capabilities. The parallel developments in high speed wireless data communication led to the introduction of GPRS. processing power.during the manufacturing process.7 CONNECTED LIMITED DEVICE CONFIGURATION The Connected Limited Device Configuration (CLDC) is a specification of a framework for Java ME applications targeted at devices with very limited resources such as pagers and mobile phones. When coupled with a profile such as the Mobile Information Device Profile (MIDP). This instigated the developers in developing applications for mobile devices which are far more portable. The various API’s available in CLDC are: Java.io package found in the standard edition for doing Input/Output operations. Unlike a web browser downloading Java applets. “micro” devices no longer need to be “static” in nature. 11 .io A streamlined version of the java. the user can also install and download from remote location. on a device affords the option to browse. The user has to just plug in the mobile device to an application platform and he can install the required application. With the introduction of J2ME. 2. With the availability of GPRS. it provides a solid Java platform for developing applications to run on devices with limited memory.

Java. math functions. Textbox.lcdui Contains the Java ME-specific classes used for the GUI.util A streamlined version of the java. Form and Canvas.microedition. Lang Contains classes thought applicable to most java programs.microedition. system functions. a set of lower level programming interfaces. javax. Alert. LCDUI API provides a small set of displayable actions in mobile device user interfaces: List. 2.8 MOBILE INFORMATION DEVICE PROFILE (MIDP) Mobile Information Device Profile (MIDP) is a specification published for the use of Java on embedded devices such as mobile phones and PDAs.Java. javax. It also contains calendar and date classes.util collection library. This package contains standard java types like Integers and Strings as well as basic exceptions.io Contains the Java ME-specific classes used for I/O operations. threading and security functions. MIDP is part of the Java Platform. For all displayable the device MIDP 12 . This package contains the collection classes like Vector and Hash table. LCDUI has a simple screen based approach where a single Displayable is always active at a time in the application user interface. Micro Edition (Java ME) framework and sits on top of Connected Limited Device Configuration.

ITEM. Then later the Programming Wireless Devices with the Java 2 Platform.implementation has control over the presentation and layout of the displayable. The term LCDUI was actually a joke in JCP Expert Group that created it. LCDUI also has quite unique approach of abstract operations. The joke was that no-one else really knows what it stands for. The idea of the command abstraction is to make applications more portable between various mobile devices from different vendors. Canvas also supports a full-screen mode that allows to make full screen graphics. although normally some space is reserved for system areas like screen title and indicators common in mobile device UIs. "LCD UI" or “Liquid Crystal Display User Interface” would reflect the fact that mobile phones normally 13 .g. Other common definitions have appeared. Application developers should use the command types properly to indicate the purpose of an operation. In MIDP 2. The application programmer uses API specified command types to indicate the usage or purpose of the command in application user interface. The placement of commands added to a displayable is completely up to the device implementation of this toolkit. Common types are BACK. and device implementation then places the operation to the common location for a given type in device's specific user interface style. a specific key. like "a back navigation key" for BACK commands or button on screen. It has not been opened up in the MIDP specifications but stands for Limited Capability Device User Interface. called Commands. Micro Edition book gave this term out. EXIT. and SCREEN. which is especially useful for games.0. This may be e. Canvas is a low-level graphics surface for which an application has full control over what is rendered to it.

however. javax. javax. javax.microedition.9 GPRS General Packet Radio Service (GPRS) is a packet oriented Mobile Data Service available to users of Global System for Mobile 14 .midlet Contains the base classes for Java ME applications. javax.microedition. 2.0 saw the introduction of gaming and multimedia APIs and some optional packages.microedition.pki Authenticate APIs for secure connections.microedition.lcdui. javax.use LCD displays.rms Record Management System Provides a form of persistent storage for Java ME.media Contains the base classes of the multimedia playback. It is also said that "LCD UI" stands for "lowest common denominator" due to the fact the specific UI has simplest possible design. Specialized APIs added in MIDP 2.game A gaming API aimed at simple 2D sprite based games.microedition.0 MIDP 2. the API is not specifically tailored to this particular display technology.

as opposed to circuit switching. Originally there was some thought to extend GPRS to cover other standards. It provides data rates from 56 up to 114 kbps.25 connections.Communications (GSM) and IS-136 mobile phones. and for Internet communication services such as email and World Wide Web access. so that GSM is the only kind of network where GPRS is in use. where a certain Quality of Service (QoS) is guaranteed during the connection for non-mobile users. Multimedia Messaging Service (MMS). by using unused Time division multiple access (TDMA) channels in. GPRS data transfer is typically charged per megabyte of throughput. The last has been typically used for applications like wireless payment terminals. 2G cellular systems combined with GPRS is often described as "2. GPRS originally supported (in theory) Internet Protocol (IP). Point-to-Point Protocol (PPP) and X. It was originally standardized by European Telecommunications Standards Institute (ETSI). for example. although it has been removed 15 . that is. Short Message Service (SMS). GPRS can be used for services such as Wireless Application Protocol (WAP) access. but now by the 3rd Generation Partnership Project (3GPP). GPRS is a best-effort packet switched service. a technology between the second (2G) and third (3G) generations of mobile telephony. but instead those networks are being converted to use the GSM standard.5G". the GSM system. GPRS is integrated into GSM Release 97 and newer releases. It provides moderate speed data transfer. independent of whether the user actually is utilizing the capacity or is in an idle state. while data communication via traditional circuit switching is billed per minute of connection time.

In this mode PPP is often not supported by the mobile phone operator.g. such as more capacity. but doing this requires either a router to perform encapsulation or intelligence built in to the end-device/terminal e. In practice.25 can still be supported over PPP. new protocols. But if the mobile is used as a modem to the connected computer.    16 . This allows DHCP to assign an IP Address and then the use of IPv4 since IP addresses used by mobile equipment tend to be dynamic.from the standard. more users. new accesses. X. PPP is used to tunnel IP to the phone. or even over IP. when the mobile built-in browser is used. new radio networks.Wireless Village Internet Applications for Smart Devices through Wireless Application Protocol (WAP) Point-to-point (PTP) service: internetworking with the Internet (IP protocols) Short Message Service (SMS) Future enhancements: flexible to add new functions. UE (User Equipment). IPv4 is being utilized. while IPv6 is not yet popular. Services Provided By GPRS GPRS upgrades GSM data services providing:     Multimedia Messaging Service (MMS) Push to talk over Cellular PoC / PTT Instant Messaging and Presence -.

SMS). 2.CLASSES Class A Can be connected to GPRS service and GSM service (voice. GPRS service is suspended. Class C Are connected to either GPRS service or GSM service (voice. During GSM service (voice call or SMS). and then resumed automatically after the GSM service (voice call or SMS) has concluded. Class B Can be connected to GPRS service and GSM service (voice. Must be switched manually between one or the other service.9. Most GPRS mobile devices are Class B. SMS). using both at the same time.1 GPRS ARCHITECTURE Figure 1: GPRS ARCHITECTURE 17 . but using only one or the other at a given time. Such devices are known to be available today. SMS).

address(es) used in the packet data network) of all GPRS users registered with this SGSN. Gateway GPRS Support Node (GGSN): A Gateway GPRS Support Node (GGSN) is a network node that acts as a gateway between a GPRS wireless data network and other networks such as the Internet or private networks. Addition of two Network elements : 1. In essence. logical link management.GPRS can be thought of as an overlay network onto the GSM network. and authentication and charging functions. current VLR) and user profiles (e. and protocols for building a packet-based mobile cellular network. Its tasks include packet routing and transfer. 2.6 to 171 Kbps. mobility management (attach/detach and location management).  The data overlay network provides packet data transport from 9. The GGSN is the anchor point that enables the mobility of the user terminal in the GPRS/UMTS networks. plus new network elements..  Multiple users can share the same air-interface resources.g. current cell. interface. Serving GPRS Support Node (SGSN): A Serving GPRS Support Node (SGSN) is responsible for the delivery of data packets from and to the mobile stations within its geographical service area. IMSI.  GPRS uses most of existing GSM network elements. it carries out the role in GPRS equivalent to the Home Agent in 18 . The location register of the SGSN stores location information (e..g.

because existing GSM phones: cannot handle the enhanced air interface cannot packetize data directly GPRS BSS  A software upgrade is required in the existing Base Transceiver Station (BTS). PDAs with embedded GSM. 19 .  The PCU directs the data traffic to the GPRS network and can be a separate hardware element associated with BSC. Databases (VLR and HLR)  All the databases involved in the network requires software upgrades to handle the new call models and functions introduced by GPRS. It maintains routing necessary to tunnel the Protocol Data Units (PDUs) to the SGSN that service a particular MS (Mobile Subscriber). GPRS subscriber terminals  Only GPRS terminals (TEs) can access GPRS Servers  GPRS enabled phones.  The PCU provides a physical and logical data interface out of BSS for packet data traffic.Mobile IP.  The Base Station Controller (BSC) also requires software  Upgrade and the installation of a new piece of hardware called a packet control unit (PCU). PC Cards for laptops  These terminals will be backward compatible with GSM for voice calls.

three B's. sequences in which the same data value occurs in many consecutive data elements) are stored as a single data value and count. This is most useful on data that contains many such runs: for example. we get the following: 12WB12W3B24WB14W Interpret this as twelve W's. etc. twelve W's. one B. and many short runs of black pixels within the text. 20 .10 Run-length encoding (RLE) Run-length encoding (RLE) is a very simple form of data compression in which runs of data (that is. with B representing a black pixel and W representing white: WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWW WWWWWWWWWWWWWWWWWWWWWBWWWWWWWW WWWWWW If we apply the run-length encoding (RLE) data compression algorithm to the above hypothetical scan line. For example. Let us take a hypothetical single scan line. and animations. consider a screen containing plain black text on a solid white background. line drawings. relatively simple graphic images such as icons. The home Location Register (HLR) and Visitor Location Register (VLR) especially require upgrades to functionally service GPRS. There will be many long runs of white pixels in the blank space. rather than as the original run. 2.

a generalization of run-length encoding that can take advantage of runs of strings of characters (such as BWWBWWBWWBWW). Data that have long sequential runs of bytes (such as lower-quality sound samples) can be RLE compressed after applying a predictive filter such as delta encoding. newer compression methods such as DEFLATE often use LZ77based algorithms. 21 . Even binary data files can be compressed with this method. However. although JPEG uses it quite effectively on the coefficients that remain after transforming and quantizing image blocks. the actual format used for the storage of images is generally binary rather than ASCII characters like this. Common formats for run-length encoded data include PackBits. with occasional interruptions of black. Run-length encoding performs lossless data compression and is well suited to palette-based iconic images. It does not work well at all on continuoustone images such as photographs. Of course. but the principle remains the same. file format specifications often dictate repeated bytes in files as padding space. Run-length encoding is used in fax machines (combined with other techniques into Modified Huffman coding). PCX and ILBM.The run-length code represents the original 67 characters in only 16. It is relatively efficient because most faxed documents are mostly white space.

dll being present.exe at all. There are three parts to a DLL: • • • the exports the code and data the import library The code and data are the parts you write . which means that they're linked into your program at run time instead of build time. The dlltool program creates the exports section of the dll from your text file of exported symbols. All these are merged together.11 DLL DLLs are Dynamic Link Libraries.2. Think of this as the list of "global" symbols. This is also generated by dlltool. Normally. Without hal. etc.dll is the core file of the Windows NT family of operating systems that provides and handles the interaction of software and hardware via the Hardware Abstraction Layer. The import library is a regular UNIX-like . They are not put into your . any machine 22 .a library. like if you were building one big object files. you'd create this list by hand with a text editor. variables.functions. Hal.exe. the rest being hidden. but it only contains the tiny bit of information needed to tell the OS how your program interacts with ("imports") the dll. This information is linked into your . The exports contains a list of functions and variables that the dll makes available to other programs. but it's possible to do it automatically from the list of functions in your code. and put into the dll.

multi-processor CPU. and APIC vs. a body. ACPI vs. Windows includes several HALs to support different kinds of hardware.12 Gzip: Gzip is based on the DEFLATE algorithm. DEFLATE was intended as a replacement for LZW and other patent-encumbered data compression algorithms which. It is a core file for several versions of the Microsoft Windows operating system. User32. the operating system will not work.vs. at the time. if it even boots. containing a CRC-32 checksum and the length of the original uncompressed data 23 • • • . If this file is damaged or deleted. which is: • a 10-byte header. 2.running a Windows NT based operating system will fail to function.dll is a DLL that implements the Windows User API Client Library. such as the original file name. limited the usability of compress and other popular archivers. containing a magic number. non-ACPI. the appropriate HAL is chosen during the initial installation of Windows.dll user32. “gzip” is often also used to refer to the gzip file format. which is a combination of LZ77 and Huffman coding. the determining factors for HAL selection are uni. PIC. a version number and a timestamp optional extra headers. Generally speaking. containing a DEFLATE-compressed payload an 8-byte footer.

Although its file format also allows for multiple such streams to be concatenated together (these are simply decompressed concatenated as if they were one). which also uses DEFLATE. Compressed archives are typically created by assembling collections of files into a single tar archive. gzip is normally used to compress just single files.tar.gz or .tgz file is usually called a tarball. 24 . and then compressing that archive with gzip. The ZIP format can hold collections of files without an external archiver. but is less compact than compressed tarballs holding the same data because it compresses files individually and cannot take advantage of redundancy between files (solid compression). zlib is an abstraction of the DEFLATE algorithm in library form which includes support both for the gzip file format and a lightweight stream format in its API. The final . gzip is not to be confused with the ZIP archive format.


Figure 2 use case diagram 1 26 .

Remote Server: Figure 3 use case diagram 2 \ 27 .

Use Case Description Authentication: Use Case Name Mobile Client Actors Description Flow of Events Alternative Flow Mobile phone The client can login and get connected to server (system).if the username and passwords are correct. message is displayed Use Case Name Image Response Actor Server Description Flow of Event Server reduce Desktop image resolution and send it to mobile(client) • Desktop image response for every ‘t’ sec Image Response: 28 . • Login • Get Authenticated from server(system) If there is no such username and password connection is denied.

Use Case Name Event Trigger Actors Description Flow of Events Server The Server Triggers the key event in HAL • • Typing Characters. Mouse operation like leftclick. Rightclick. Numbers. Keys &Mouse events: 29 .

file modification is carried out Desktop Capture: 30 . modify are done • File open.File Operation: Use Case Name File operation Actor Server Description Flow of Event The various file manipulation like open.

Use Case Name Mobile Client Actors Description Flow of Event Mobile phone The desktop image that is sent from the server is displayed in the mobile and updated every time interval Image decrypted Image Displayed according to resolution Image Updated 31 .

3.2Activity Diagram Login: 32 .

Image Response 33 .

Event Response 34 .

3 Sequence Diagram 35 .3.

Figure 5 Sequence Diagram 3.4 Deployment Diagram 36 .

J2ME <<client>> VEWS KERNEL <<server>> Figure 6 .Deployment Diagram 37 .

5 System Architecture:- GPRS CLIENT SERVER Figure 4: System Architecture 38 .3.

JRE(Java Runtime Environment) Tool: Sun Java Wireless Toolkit. 39 .5 or above.CHAPTER 4 IMPLEMENTATION 4.1 SYSTEM REQUIREMENTS Operating System: Windows 98 or above or Linux Network Facilities: Good connection to the Internet facility and GPRS connection. More suitable for static IP systems Server: Sun Java Application Server Platform: JDK 1.

under Microsoft Windows XP: 1. at http://java.4.3 Beta ►KToolbar (Figure 7 step creating j2me application) 40 . documentation. Figure 3 shows the Sun Java Wireless Toolkit©. and other small mobile devices.2 IMPLEMENTATION DETAILS Steps to develop J2ME Program This sub-section gives an example of J2ME programming (Sun Microsystem Inc.. mainstream personal digital assistants. an MIDP application. The following steps showing how to develop an MIDP application.sun. development environment KToolbar as shown in Figure 3 by selecting the following Windows commands: Start ► All Programs ► Sun Java Wireless Toolkit 2.3 Beta. Download Sun Java Wireless Toolkit 2. Run MIDlet.com/products/sjwtoolkit/download-2_3. The toolkit includes the emulation environments. 2004). World!” program. which is a toolbox for developing wireless applications that are based on J2ME's Connected Limited Device Configuration (CLDC) and Mobile Information Device Profile (MIDP). and examples that developers need to bring efficient and successful wireless applications to market quickly. Other client-side handheld programming is similar to this. and designed to run on cell phones. 2. performance optimization and tuning features. a simple “Hello. which includes a set of tools and utilities and an emulator for creating Java applications that run on handheld devices.html.

6. Build the project by clicking on the Build button. application resource files. 41 . An emulator will be popped up and displays the execution results of the built project. which tells where to put the Java source files. Create a new project by giving a project name such as HelloSuite and a class name such as HelloMIDlet as shown in Figure 4.” Figure 6 gives a J2ME example. and application library files. which displaysthe text “Hello. 4.3. the KToolbar will display the message shown in Figure 5. The Build includes compilation and pre-verifying. Create a J2ME source program and put it in the directory “C:\WTK23\apps\HelloSuite\src\. world.” 5. After the project HelloSuite is created. For example. World!” and a ticker with a message “Greeting. Figure 7 shows an emulator displays the execution results of HelloSuite. Run the project by clicking on the Run button.

The steps involved in connection establishment are: 1. The application obtains the InputStream or the OutputStream object from the Connection object. 42 . The returned Connection object holds references to input and output streams to the network resource. The server is located using the socket address which comprises of its IP address and its corresponding port number.3. By using the above steps a J2ME application can be developed now let us see how the application is developed for our project.3 CLIENT MODULES: 4. The application reads from the InputStream or writes to the OutputStream as part of its processing. The application requests the Connector class to open and return a connection to a network resource. The connection is established in J2ME using the connector() function. 4.7. or Bluetooth wireless technology. 2.open() factory method parses the URI and returns a Connection object. infrared ports. 3.1 Server Access This module enables the client to establish a connection with the server. Then for the Authentication purpose the user needs to provide the client with the username and password of the corresponding system which is going to be accessed. 4. Upload the application to handheld devices by using USB cables. The Connector.

The various keys and its usages correspond to various events that need to be done on the server system.The application closes the Connection when finished. So the events are captured and it is transferred to the server with the corresponding ASCII codes.5.3. 43 . Figure 8 connection establishment 4.2 Corresponding Event Capture and transfer The various events triggered by the user is grasped and its corresponding request is sent to the client.

The decryption is done using gzip decompression. both the client and server have received an acknowledgment of the connection. 4.4 SERVERMODULE 4. To establish a connection. TCP uses a three-way handshake. the server replies with a SYN-ACK.4. 2. 44 . a client may initiate an active open. Once the passive open is established.3. Before a client attempts to connect with a server.1 Connection Establishment To establish a connection. the three-way (or 3-step) handshake occurs: 1. Finally the client sends an ACK back to the server. The image to be displayed needs to be of proper resolution of the mobile and also decryption of the data needs to be done. In response.3 Updating Display The Display of the system on the client needs to be constantly updated and it is done by replacing the desktop image sent from the server every t seconds. At this point. 3. the server must first bind to a port to open it up for connections: this is called a passive open.4. The active open is performed by the client sending a SYN to the server.

If the port is not yet established. 45 . The possible states are as follows: CLOSE_WAIT. The name of the local computer that corresponds to the IP address and the name of the port is shown unless the -n parameter is specified. SYN_RECEIVED. If the port is not yet established. LISTEN. the port number is shown as an asterisk (*). Local Address .  The screen is captured for every t seconds and then t and t+1 images are compared using XOR technique. FIN_WAIT_2. 4.The IP address and port number of the remote computer to which the socket is connected. ESTABLISHED. LAST_ACK.3 Desktop Capture & Resolution matching: The Screen capture is done from the kernel services. For more information about the states of a TCP connection.The name of the protocol (TCP or UDP). • • Foreign Address .4. Netstat provides statistics for the following: • Proto . the port number is shown as an asterisk (*).4.The IP address of the local computer and the port number being used. • State . and TIME_WAIT. FIN_WAIT_1. The names that corresponds to the IP address and the port are shown unless the -n parameter is specified.Indicates the state of a TCP connection. CLOSED. SYN_SEND.4.2 Authentication The Server checks its Socket information and its status using the netstat.

 The Screen is captured as a bitmap image and the dimensions of the screen is obtained for resolution matching. Desktop Capture Image Capture Snapshot at ‘t’ Second Snapshot at ‘t+1’ second Separate RGB Component Separate RGB Component Subtraction Final Screen Figure 9 Desktop capture  The Resolution of the Captured bitmap is reduced to 1/4th of its original resolution.  This is done by using the Color Quantization Technique  Helps to display images on low memory devices 46 .

dll is the core file of the Windows NT family of operating systems that provides and handles the interaction of software and hardware via the Hardware Abstraction Layer 47 .4 Event Handling:  The various Keyboard and Mouse events are handled by using the kernel level services  The event requests from the client are transferred to the HAL and it is then handled by the kernel itself.4.  Hal.4.

4.5 Snapshot: Sun Java Application Server Figure 10 SJAS server 48 .

Login Page Server Connection Figure 11 Login Page &Server Connection 49 .

Desktop Capture Figure 12 Desktop Capture 50 .

Menu options Mouse Events 51 .

52 .

Figure 13 Menu Options & Mouse Events Keyboard Events Shortcut keys 53 .

Figure 14 Keyboard Events & Shortcut Keys Listing the Drives Opening the File 54 .

` Figure 15 Listing the Drives & Opening the File CHAPTER 5 CODING AND TESTING 55 .

5. 0. private Display display. } } catch (Exception e) { System.close(). try { hc = (HttpConnection)Connector.HTTP_OK) { is = hc.getResponseCode() == HttpConnection.out.openInputStream(). } 56 . int actual = is. int len = (int)hc. private Image image=null.getLength(). private SM1 parent.read(data). } catch (Exception e) { } } if (hc != null) { try { hc. public Image getImageFromUrl(String url) { InputStream is = null. Image img = null.createImage(data.println("IO Exception+"+e).1 CODING: CLIENT SIDE:  SERVER ACCESS private Command exit. byte[] data = new byte[len]. } finally { if (is != null) { try { is. img = Image. len).open(url).close(). if (hc. HttpConnection hc = null.

form.getDisplay(this). TextField. ipaddr = new TextField("IP-ADDR:". password = new TextField("Password:".ANY). } } public LoginMidlets() { userName = new TextField("LoginID:". login = new Command("Login".PASSWORD).OK. form. 10. 2).CANCEL. 10. } public void startApp() { display = Display.addCommand(login).addCommand(cancel).ANY). } else if(c == ScreenCommand){ nt = new ntclient(this). TextField. "". 15.setCommandListener(this). 2).append(password).append(userName). connect = new Command("Connect". TextField. form.ANY). Command. Command.catch (Exception e) { } } return img. 2). "". TextField. "". portno = new TextField("Port-NO::". 10. }  Corresponding Event Capture and transfer public void commandAction(Command c. notifyDestroyed(). display. cancel = new Command("Cancel". Command. form. Displayable s) { if (c == exitCommand) { destroyApp(false).setCurrent(form).OK. 57 . form = new Form("Sign in"). "". form1= new Form("Connect"). form.

} 58 .getString()+"&type=move").addCommand(MLClickCommand). MouseForm. MouseForm.getString()+"&y="+ty."http://127.getString()+"&type=left")."". MouseForm.getString()+"&type=left-double"). MouseForm.4.setCurrent(displayForm).setCurrent(MouseForm)."". } else if(c==MLDClickCommand){ mc = new MouseClient(this.getString()+"&y="+ty."http://127.setCommandListener(this).0.NUMERIC).getDisplay(this). Display.setCommandListener(this). tx = new TextField("Enter x". } else if(c==MRClickCommand){ mc = new MouseClient(this. MouseForm.html? x="+tx. MouseForm.html? x="+tx.setCommandListener(this).setCommandListener(this). } else if(c==BackCommand){ Display.append(tx)."http://127.getString()+"&type=right").1:8080/MouseClick. MouseForm. } else if(c==MLClickCommand){ mc = new MouseClient(this.setCommandListener(this).addCommand(BackCommand).0.html? x="+tx.1:8080/MouseClick.0.TextField.addCommand(MLDClickCommand).0.1:8080/MouseClick.0.html? x="+tx.0.NUMERIC).getDisplay(this). MouseForm.append(ty).0.addCommand(MRClickCommand).4. MouseForm. MouseForm.0.1:8080/MouseClick. } else if(c==MPressCommand){ mc = new MouseClient(this."http://127. MouseForm.TextField. ty = new TextField("Enter y".} else if(c == MouseCommand){ MouseForm = new Form("Mouse Movement").getString()+"&y="+ty. MouseForm.addCommand(MPressCommand).getString()+"&y="+ty.

byte abyte6[] = new byte[48]. } public byte[] a(byte abyte0[]. byte[] y = new byte[uncompressedBufferLength].Dispose().Length. MemoryStream ms = new MemoryStream(x). byte abyte2[]. GZipStream gz = new GZipStream(ms. Console. gz. } internal static void ExclusiveOR(byte[] x) { int k = x. 59 .Dispose(). int i. byte abyte5[] = new byte[4]. 0.Length). CompressionMode.0). i < k. return y.Close(). gz. byte abyte1[].Read(y.ToInt32(uncompressedBufferLengthBytes. Updating Display uncompressedBufferLength = BitConverter. for (i = 0. true). int i1) throws am { byte abyte3[] = new byte[20].Decompress. y. i++) { xoredBytes[i] = (byte)(xoredBytes[i] ^ x[i]). gz. ms. ms.WriteLine(" Buffer Length " + uncompressedBufferLength).Close().

abyte0[2] = -98. F. byte abyte4[] = F.a(abyte4.a(abyte2. 48). j1 < 3. } class MyCanvas extends Canvas implements CommandListener { private Command exit. 0._mthdo(). 0. j1++) { for(int k1 = 0._mthdo(). } public byte[] _mthif(byte abyte0[]. k1++) abyte5[k1] = (byte)(i1 + j1). abyte0[1] = 38.a(abyte0.a(abyte0. j1 + 1). 0.arraycopy(_fldgoto. 16). _fldgoto. byte abyte2[]. k1 <= j1.a(abyte1.a(abyte2._mthdo(). 48). 20). i1. _fldgoto.a(abyte1. 32). int i1) throws am { _fldgoto. System. for(int j1 = 0. F._mthif(). 32). _fldgoto.boolean flag = false. 0. } public void _mthdo(byte abyte0[]) { abyte0[0] = -47. return _fldgoto. 0. 32). 0. F. abyte6. 32).a(abyte5.a(abyte0. F. 0. byte abyte1[]. F. 16). 0. 60 . } return abyte6. _fldgoto. 0. j1 * 16.

if (hc. Image img = null.println("IO Exception+"+e).private SM1 parent.parent = parent. } } public MyCanvas(SM1 parent) { this. } catch (Exception e) { } } return img. private Display display. 61 . public Image getImageFromUrl(String url) { InputStream is = null. } } catch (Exception e) { System.close(). img = Image. int len = (int)hc.open(url). byte[] data = new byte[len].openInputStream(). HttpConnection hc = null.getLength(). try { hc = (HttpConnection)Connector. } finally { if (is != null) { try { is.close(). int actual = is.createImage(data.read(data).out. private Image image=null. len). } catch (Exception e) { } } if (hc != null) { try { hc. 0.getResponseCode() == HttpConnection.HTTP_OK) { is = hc.

Displayable display) { if(command==exit) { Display. } catch(Exception err) { Alert alert=new Alert("Failure". alert.setCurrent(alert).displayForm). err."Can't open the image file".EXIT.LEFT).0.getDisplay(parent). } } } SERVER  Connection Establishment & Authentication 62 . } } protected void paint(Graphics g) { if(image!=null) { g. try { image = getImageFromUrl("http://127. Command.0. Display.setCurrent(parent.null.jpg").1:8080/screen.TOP|Graphics.setTimeout(Alert.drawImage(image.FOREVER).getDisplay(parent). setCommandListener(this). addCommand(exit).0.Graphics.printStackTrace().0.exit=new Command("Exit".1). } } public void commandAction(Command command.null).

Stream.Tcp). } internal static void BindSocket(Socket s.InterNetwork.InterNetwork. eventEndPoint = new IPEndPoint(ipAddress.IPEndPoint ipEnd) { s.WriteLine("Binded Socket").Bind(ipEnd). s. SocketType. eventSocketListener = new Socket(AddressFamily. } internal static void StartListening(Socket s) { 63 .Stream. SocketType. ProtocolType.internal static void CreateIPEndPoints() { imagePort = RDSController. Console.Any .WriteLine("TCPSockets Created"). imageEndPoint = new IPEndPoint(ipAddress.eventPort). Console.WriteLine("IPEndPoints Created"). ProtocolType.Tcp).NoDelay = true. } internal static void CreateTcpSockets() { imageSocketListener = new Socket(AddressFamily.port1. eventPort = RDSController. Console. ipAddress = IPAddress.port2. } internal static void SetSocketOptions(Socket s) { s.imagePort).SendBufferSize = 100000.

true) == 0) { connectionAccepted = true.WriteLine("Connection Accepted"). } internal static void SendResponse() { responseBytes = Encoding.GetBytes(response).Listen(2).0. #endif 64 .canContinue = true. imageSocket.None). if (String.InitializeByteArrays(). Console. EventProcessor.println("Color quantizing starts"). "ye". Console.Compare(response. } internal static void AcceptSecondConnection(Socket s) { eventSocket = s.WriteLine("Connection Accepted").Accept().Socket Flags.canContinue = true.WriteLine("Listening Started").out.s. EventProcessor.responseBytes.Length. Console.Send(responseBytes.ASCII. ImageProcessor. } }  Desktop Capture & Resolution matching:internal static byte[] ColorQuantize(Bitmap bmp) { #if IMAGE System. } internal static void AcceptFirstConnection(Socket s) { imageSocket = s.Accept().

byte[] bmpArray = new byte[bmp.Width * bmp.Height]; int w = bmp.Width; int h = bmp.Height; BitmapData bmpData;

{ byte* bmpPtr = (byte*)bmpData.Scan0.ToPointer(); for (int i = 0; i < bmpData.Height; i++) { int k = i * DesktopScreen.screenWidth ; for (int j = 0; j < bmpData.Width; j++) { bmpArray[k + j] = (byte)((32 * (bmpPtr[2] / 32)) + (4 * (bmpPtr[1] / 32)) + (bmpPtr[0] / 64)); bmpPtr += 3; } } } #if IMAGE System.out.println ("Length of the Array returned : " + bmpArray.Length ); #endif internal static byte[] ExclusiveOR(byte[] x, byte[] y) { byte[] xorBytes = new byte[DesktopScreen.screenWidth * DesktopScreen.screenHeight]; int j = DesktopScreen.screenWidth * DesktopScreen.screenHeight; for (int i = 0; i < j; i++) {

xorBytes[i] = (byte)(x[i] ^ y[i]); } #if IMAGE System.out.println ("EXORed Image Size : " + xorBytes.Length ); #endif return xorBytes; } internal static byte[] RLEEncoderShortBoundary(byte[] x) { #if IMAGE System.out.println ("RLE Encoder short boundary starts"); #endif int i = 0, j = 0, xl = x.Length; byte[] y = new byte[1024 * 1000]; byte f, s; ushort r = 0; f = x[i]; i += 1; s = x[i]; i += 1; while (i < xl) { if (f == s) { y[j] = f; j += 1; y[j] = s;

j += 1;

while (i < xl) { if (f == x[i] && r < 65535) { r += 1; i += 1; } else break; } byte[] t = BitConverter.GetBytes(r); y[j] = t[0]; j += 1; y[j] = t[1]; j += 1; r = 0; if (i < xl - 1) { f = x[i]; i += 1; s = x[i]; i += 1; } else if (i == xl - 1) { y[j] = x[i]; j += 1; break;

0. i += 1. } } } byte[] output = new byte[j]. j). #if IMAGE System. j += 1.println ("RLEEncoder short boundary ends ").Length). 0.out.out. f = s. j += 1.ConstrainedCopy(y.println ("Length of the Array returned : : " + output. #endif #if IMAGE System.} } else { y[j] = f. Array. if (i < xl) { s = x[i]. } 68 . } else { y[j] = s. break. output. #endif return output.

Close().out. #endif #if IMAGE System. CompressionMode. gz.Compress.Length ).println ("Length of the Array returned : " + ms.dll Import dkey1. }  Event Handling: class EventProcessor { #region Fields Import dmouse1. LEFTUP = 0x00000004. #endif return ms. #if IMAGE System. true).dll internal enum MouseEventFlags { LEFTDOWN = 0x00000002.Write(data.Length).out. GZipStream gz = new GZipStream(ms.out.println ("GZipCompress starts ").println ("GZipCompress ends ").internal static byte[] GzipCompress(byte[] data) { #if IMAGE System.ToArray(). #endif uncompressedBufferLength = data.dll Import hal. 0. data. 69 .ToArray().Length. gz. MemoryStream ms = new MemoryStream().

MouseUp. MouseMove. KeyUp. RIGHTUP = 0x00000010. MouseDown. MIDDLEUP = 0x00000040.NoEvent. Left. RIGHTDOWN = 0x00000008.NotAssigned . internal static InputEvent inputEvent = InputEvent.MIDDLEDOWN = 0x00000020. internal static byte[] mouseButtonBytes = null. Middle. MOUSEWHEEL = 0x00000800 } internal enum InputEvent { NoEvent. ABSOLUTE = 0x00008000. Right } internal static MButton mouseButton = MButton. 70 . KeyDown. MOVE = 0x00000001. MouseWheel } internal enum MButton { NotAssigned. internal static byte[] eventBytes = null. internal static byte[] keyValueBytes = null.

uint dx. 71 . int dwData. byte bScan. mouseButtonBytes = new byte[1]. internal static Point point. internal static byte[] syncBytes = null. uint dwFlags. internal static byte[] mouseYposBytes = null. internal static short mouseYpos = 0. internal volatile static bool canContinue = false. internal static short mouseXpos = 0. UIntPtr dwExtraInfo). [DllImport("user32. keyValueBytes = new byte[1]. internal volatile static bool shouldStop = false. UIntPtr dwExtraInfo).dll")] private static extern void keybd_event(byte bvk.internal static byte[] mouseXposBytes = null. internal static byte[] mouseDeltaBytes = null. #endregion internal static void InitializeByteArrays() { eventBytes = new byte[1].dll")] private static extern void mouse_event(uint dwFlags. internal volatile static bool shouldExit = false. internal static short mouseDelta = 0. #endregion #region Methods #region DLLImport Methods [DllImport("user32. uint dy. internal volatile static bool pausedByClient = false.

} 72 .None). 0. mouseDeltaBytes = new byte[2]. SocketFlags.Length. SocketFlags.None). #endif while (true) { (s. } internal static void ReceiveEvent(Socket s) { if (RDSSocket.Available > 0) { s. } if (eventBytes[0] == 1) { inputEvent = InputEvent. break.KeyUp.Length.Receive(eventBytes. s. mouseYposBytes = new byte[2].mouseXposBytes = new byte[2]. 0.connectionAccepted ) { #if EVENT System.println ("Receiving Event ").out.Receive(keyValueBytes. syncBytes = new byte[1]. keyValueBytes. eventBytes. point = new Point().

Right.else if (eventBytes[0] == 2) { inputEvent = InputEvent. 0. SocketFlags. s.KeyDown. s. 0. mouseButtonBytes. if (mouseButtonBytes[0] == 1) { mouseButton = MButton. 0.Length.None).MouseUp.None). if (mouseButtonBytes[0] == 1) { mouseButton = MButton.Left.Length.Left.MouseDown.None).Receive(mouseButtonBytes. } else if (mouseButtonBytes[0] == 3) { mouseButton = MButton. keyValueBytes.Length. s.Receive(keyValueBytes. SocketFlags.Receive(mouseButtonBytes. } else if (eventBytes[0] == 3) { inputEvent = InputEvent. } 73 . SocketFlags. } else if (mouseButtonBytes[0] == 2) { mouseButton = MButton. mouseButtonBytes.Middle. } } else if (eventBytes[0] == 4) { inputEvent = InputEvent.

ToInt16(mouseDeltaBytes. SocketFlags.Length. 0. 0.ToInt16(mouseYposBytes. 0.MouseMove. SocketFlags. } else if (eventBytes[0] == 6) { inputEvent = InputEvent. 0).None). } #if EVENT System. 0).Length. } else if (mouseButtonBytes[0] == 3) { mouseButton = MButton.Receive(mouseYposBytes. s. mouseDelta = BitConverter.Y = mouseYpos. mouseYpos = BitConverter.Receive(mouseXposBytes.ToInt16(mouseXposBytes.Middle.None). point.Length. mouseXpos = BitConverter. s. } } else if (eventBytes[0] == 5) { inputEvent = InputEvent.Receive(mouseDeltaBytes.println (" Received Event : " + eventBytes[0]). 0). s.Right.MouseWheel. point.out. mouseDeltaBytes. mouseYposBytes.else if (mouseButtonBytes[0] == 2) { mouseButton = MButton. SocketFlags.X = mouseXpos. 74 . mouseXposBytes.None).

2. 5.#endif 5.2. 5.2 TESTING The various testing strategies used in our code are: • Functional Test • Stress Test • Structure Test • Black box Test • White box Test Structure Test In the structure test we found the exact flow of the program and tested for incremental test cases. 5. 5.4 Black box Test In the black box test we found that for the given input values the required output values were obtained.2 Stress Test We are concerned with exercising the internal logic of the program and so we traversed particular execution paths and we exercised test cases.1 Functional Test We have exercised the code with normal input values for which expected results were obtained.5 White box Test In the white box test temporary variables were used in the functional to test the execution of the process and the required output has been obtained 75 .

The system uses GPRS as the medium through which the communication takes place.successfully. We tested the code unit by unit and it was efficient in integrating into the required software product and finally performing the possible test scenarios performed the integration testing to the product and the perfect output was obtained without any error. The mobile client is capable of accessing system from anywhere in the world provided there is GPRS 76 . CHAPTER 6 CONCLUSION AND FUTURE ENHANCEMENTS In this system the Personal Computer is accessed from remote location with just the handheld devices.

Thus this makes this remote desktop accessing system practically more viable.Myers ‘Using handhelds for wireless remote control of PCs’. Thus by running the server on the system and the client application on the mobile. In the future we have proposed to enhance this feature by using the mobile itself to switch on the system and then to establish the connection. June 2004. Brad A. CHAPTER 7 REFERENCES 1. This can be done by calling on to the landline which is connected to the system and from the line a circuit is designed to induce a 5Volt trigger to boot the system on and the server is made default in the system startup services. This system requires the system to be on. 77 . The performance of the system is dependent on the GPRS bandwidth available. it is possible to control and perform tasks on the system from remote locations on the move. unlike the existing systems which just makes use of Bluetooth connectivity and limits the communication distance to few meters which is practically of little use. with the server running for establishing communication.connectivity.

Chung-wei Lee. Yapin Zhong. ‘Using handhelds and PCs together’ by’. 78 . 6. CMWare. et al. ‘Client side handheld computing and Java 2 platform Micro Edition’. 3.. 5. Brad A. Copenhagen. 4. November 2001. “Inc White Paper: ‘The Emergence of PC Place Shifting’”. Soma Gosh ‘MIDlet deployment: Learn to deploy remotely and locally to J2ME devices’ April 2006.Myers. Wen-Chen Hu. 2007. “Inc White Paper: NetOp® Mobile”. September 2006.2.

79 .

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.