Wednesday, July 30, 2008

Green IT

Energy Saving Methods to Sustain Green IT

Abstract

The purpose of this report is to describe power saving methods of computers and data centers. Energy saving is important for both environmental and economic reasons. Idle powered computers consume significant amount of electricity. There are many power management features available in Operating Systems. Data centers consume electricity to power the servers and remove the heat which is generated by servers. Data centers can use virtualization, efficient cooling systems and smart building technologies to reduce this energy consumption. Top level IT companies plan to use green electricity for their data centers. Provide high performance computers with less power consumption is a really big technical challenge. Innovative technology has been used to face this.


Introduction

Energy saving methods have been used to create energy efficient computing. Energy efficient computing focuses on increasing the performance of computers through less power consumption. For an example single-core to dual and quad-core processors save power while increasing performance. However electricity consumption is directly effects to the environment, because carbon dioxide and other green house gases are emitted into the environment throughout the process of generating electricity. Green IT is a concept that uses to reduce the IT environmental problems and create sustainable environment.
Computer peripherals consume significant amount of electricity. Monitors, CPU and memory devices consume considerable amount of power in a PC. Likewise a laptop display consumes the highest proportion (33%) of electricity, but currently new laptops have extremely beautiful video displays (Williams & Curtis 2008, p.14). Thus optimizing the battery life of the laptops has become a big challenge for the manufacturers. Except the PCs, backend servers consume vast amount of electricity. Data centers consume electricity to power the servers and also to remove the heat generated by the servers. Data centers in US consume roughly 1.2 percent of total US electricity (Aronson 2008, p.44). Consequently data center’s energy cost is the often single largest operating cost. Currently technology is used to increase the performance of computers and servers to get high output, but at the same time business requirements are being grown faster. For an example Google was established few years ago, but now it has nearly half millions of servers (Wang 2007, p.1). That happened because lots of high performance CPUs packed into servers to accomplish the growing workload. Demand for the more computing power and functionality increase with economy expand and also with rising the living standards. Therefore computer systems has become very complex with additional features and functionalities, those consumes large amounts of electricity. Therefore electricity might become a major issue to be considered by all leading information officer in next six to twelve months (Wang 2007, p2). Thus manufactures face big technical challenge to give high performance without increasing the electricity consumption. With these circumstances rules and regulations can be created to force the use IT equipments with certain level of energy efficiency (Wang 2007, p.2). Thus energy efficient IT equipments can make significant savings for the IT companies. According to the IDC report in 1996 when IT departments around the world spent roughly 17 cents of every dollar for the electricity and 10 years later that amount has risen up to 48 cents per dollar (Maleshefski 2007, p.40). IT departments can reduce their energy consumption by following various energy management strategies. This is an individual and corporate responsibility of everyone works in IT industry.

This report reviews energy efficient strategies for personal computers for instance changing the usage and power management features in operating systems. Furthermore this review will explore the way to minimize environmental impact of data centers using virtualization, energy efficient cooling mechanisms, echo friendly data center design and green electricity. This review will also examine the new technologies which have been used to design green computers with less power consumption.

1. Energy saving methods for Computers
1.1 Usage
Lots of computers are turned on while they are not being used. The main two reasons for that are convenience and misconception. Normally computers take a few minute to be ready for use after turned it on (Weiss 2007, p.22). Thus it makes some sort of inconvenience for the users. The misconception is frequent power cycles can reduce the lifetime of computers (Weiss 2007, p.22). However lifetime of the electronic device does not depend on the frequent power cycles. It depends on electronic device’s operation time and its temperature (Murugesan 2008, p.28). Both of these factors will reduce when turn off the computers. Therefore computers must switch off while they are not being used to get efficient use of electricity and in addition to that it helps to expand the lifetime of computers.
Idle PCs consume significant amount of electricity in computer labs and also in IT companies. One factor that directly influences to this is very low individual penalty costs (Weiss 2007, p.22). That means company power bills are not paid by workers, therefore that is not a considerable issue for them. In contrast use of computers in IT companies is widespread across the whole organization. Therefore enterprise’s PC power consumption is not easily managed by IT staff (Murugesan 2008, p.28). There are several methods available to control inefficient energy consumption in the large amount of computers. Network level controller is one of them that can be used over the CPUs and monitors in computer labs to reduce the inefficient use and also network administrators can remotely awake them for maintenance (Murugesan 2008, p.28). This controller can put PC into lower power consumption mode while they are not being used.



1.2 Power Management features in operating systems
Power management features can put the computers automatically into energy saving state while they are not being used without reducing its performance. There are many types of power management features embedded in the operating systems. It is very efficient, if these features are enabled in the operating systems by default. Thus Microsoft has been enabled power management features in their latest operating system called Vista by default (Maleshefski 2007, p.42). Consequently Microsoft Vista Operating systems can automatically turn off the hard disk when the computer is idle. Although all operating system’s power management features are not deployed in default (Maleshefski 2007, p.42). Then users must find and activate the power management features.
Stand by and sleep modes are the two power management features those come with the operating systems. These power management features turn off the monitor or the displayer of computer to reduce the power consumption. This is very effective because maximum proportion of electricity is used by the displayers and the monitors, compared with the others components (Williams & Curtis 2008, p.14). Thus a considerable amount of electricity can save by turning off the displayers while computers are idle. Hibernation in windows and ‘save sleep’ in Mac are also the power management features, those can reduce the energy consumption near zero (Weiss 2007, p.22). Theses power management features can powered off all the components of the computer and this needs part of the memory to save the sates of current programs. Screen savers are also used to save energy when computers are not being used (Murugesan 2008, p.28, Weiss 2007, p.22 & Maleshefski 2007, p.42). Screen savers reduce the monitor’s energy consumption. Furthermore Black screen savers save more electricity than screen savers those display moving images (Murugesan 2008, p.28). Besides even black screen savers reduce the monitor’s power consumption by only a small proportion.




2. Energy saving methods for data centers
Data centers consume large proportion of electricity for power the servers and for the cooling mechanisms. Consequently operating cost of data centers steadily increases with the energy price increasing worldwide. The number of servers has increased by enterprises to expand their capabilities (Murugesan 2008, p.28). Since the data centers are expanded with the growth of business needs. There are several strategies to maximize the energy efficiency in data centers.
Virtualization is one popular mechanism to make data centers energy efficient. Virtualization mechanism allows deploying multiple operating systems and applications at the same time in one particular server (Maleshefski 2007, p.42). Subsequently appropriate server resources are dynamically allocated for each application without affecting the operation of applications. Furthermore virtualization can reduce electricity consumption and simplify the data center’s environment by reducing the number of servers (Murugesan 2008, p.29). Then virtualization can maximise the output of servers and minimize the inefficient use of electricity by reducing number of servers in the data centers, because virtualization can reduce number of idle physical servers that consumes electricity and generate heat.
Cooling mechanisms of data centers consume large proportion of its total electricity consumption. Data centers are mostly used air cooling systems. Air cooling system must be closely coupled with the server to save the electricity (Aronson 2008, P.44). In that case less power is consumed to push the air closer to the heat source. Liquid cooling systems are hundred times efficient than air cooling systems (Murugesan 2008, P. 29). Liquids can observe more heat compared with air. The one drawback of liquid cooling is the complexity involved with it (Murugesan 2008, P. 29). Therefore this is suitable for organizations with large high density computer infrastructures, because they can deal with these complexities and get high benefits. Furthermore IT industry invents new strategies to cooling there data centers. Subsequently IBM has started to use efficient cooling systems like fluid-cooling system and in-server, in-rack and in-row cooling systems apart from the liquid cooling systems (Murugesan 2008, P. 29). These new cooling mechanisms consume less power.
Data center design can make significant impact of its power consumption. Thus data centers must be design according to the right size (Aronson 2008, P. 44). Although some data centers have been over specified. Then lots of energy and other resources are waisted. The right size infrastructure of data centers to the workloads can cut down 50 percent of electricity bills in the real world (Maleshefski 2007, p.46). Therefore required capacity must properly identify before specifying the data center size. Furthermore there are some other aspects in data center’s layout design, those make energy efficient environment. Distributed sensors can be used in data centers to dynamically control the operations of cooling systems (Aronson 2008, P. 44). These sensors turn on the cooling systems when heat increase up to some particular level. In this situation, cooling systems are not turned on all the time. Data center layout can design with energy efficient windows and sky light (Murugesan 2008, P. 29). Then electricity is not consumed to add lights into the data centers.
Data centers can use green electricity. Green electricity means electricity that is generated using hydropower and solar panels. Environmental impact of this green electricity generation process is less. Therefore the top level companies like Microsoft and Google planned to develop new data centers using these green power sources (Weiss 2007, P. 24). This is an appropriate solution to maintain environmental sustainability with economical growth.

3. New Technologies to design green computers with less energy consumption
Computer manufacturers face difficult technical challenge to produce high performance computers without increasing the power consumption. Innovation in energy efficiency means ‘developers maintain performance levels and reduce the power consumption compared to previous design or gain more performance with same amount of energy consumption’ (Higgs 2007, p. 210). Therefore innovative technologies have been used to design green computers with less power consumption and high performance. Multicore technology is one innovative technological solution that helps to increase overall efficiency of processors with less power consumption (Higgs 2007, p.211). Likewise Dual-core and quad-core processors those come under multicore technology consume less energy while increasing performance. In earlier, number of chip operations were increased to get high performance, but this used high capacity and generated heat (Murugesan 2008, p31). Hence that is not energy efficient. New micro chip technology has used to manufacture multi-core processors with high performance and less energy consumption (Weiss 2007, p.23). This new technology makes multitasking environment within the processors. Then one processor can simultaneously do multiple tasks without increasing energy consumption.
New technology investigates about energy efficient silicon chip design. However in chip design, circuit size continuously shrinks with dramatically increase of number of transistors, but this causes to increases the power consumption and heat generation (Higgs 2007, p.211). Therefore new technology has been used to design new chip that decreases the power consumption and heat generation. New chip design focuses on reducing electricity losses and varying power consumption based on the demand (Higgs 2007, p.211). This new chip designs will help to achieve high performance with same level of power consumption.
Laptops are very popular because of convenience for use. The biggest challenge attach with the laptops is optimizing battery life with increasing performance. Thus Intel investigates on ‘Ultra Mobile’ technology, which can achieve ten times lower power consumptions than today (Higgs 2007, p.211). This technology will help to increase the performance per watt ratio. Besides a laptop displayer consumes highest proportion of electricity (Williams & Curtis 2008, p.14). Thus new laptop screen has darkened and display palette has lightened to reduce the power consumption (Murugesan 2008, p31). This method helps to optimize the battery life of laptops.
Memory of the computers also consumes significant amount of electricity. Therefore now cache memory of computers is divided into segments and each segment powered when required(Murugesan 2008, p31). This technology is very effective because whole cache is not hundred percent occupied every time. New technology further investigated that lots of energy can save by using small numbers of high capacity drivers in servers instant of using large number of small capacity drivers (Murugesan 2008, p31). Therefore less number of memory devices must maintain to achieve low power consumption.
Processor itself consumes a small amount of total electricity compared with other peripherals. Nevertheless it controls the electricity consumption of other components of the computer. Intel introduced power management mechanism called ‘Instantly available PC power management’ that puts PC into standby stage when its power consumption drops below 5 watts and it allows PC to quickly enter to the wake up stage in response to network signal (Higgs 2007, p.214). Consequently this technology is controlled by the processor and it is very convenient because PC can quickly come into ‘wake-up’ stage.
Softwares also can play considerable role in overall system power management. Power management software tool called ‘Power and thermal manager’ was introduced by Intel (Higgs 2007, p.214). This software must install into servers and PCs. Subsequently this gives advantages with built-in features like demand based switching in servers (Higgs 2007, p.214). Demand based switching reduces the inefficient power consumption of servers.


Conclusion
This review has explored that lot of idle computers consumed a considerable amount of electricity. This appears because of misconception and convenience. Hence computer users have a responsibility to reduce the inefficient energy utilization. Furthermore if users don’t like to be waiting until the computers are ready after turn it on, they can use save sleep or hibernating, because that doesn’t take much time. Apart from that users must aware about the power management facilities available in the current operating systems, because all the operating systems are not activated them in default. Then user must find and activate them.
Employees of the IT Companies are not individually penalized for inefficient energy utilization. However they have individual and corporate responsibility to reduce the inefficient electricity consumption within the organization.
Data centers must design according to the required size to reduce the electricity utilization and heat generation. Furthermore virtualization can reduce the number of servers required for the data centers. Green electricity makes less impact on the environment. Since authorized organizations must invest on new projects to generate green electricity and must motivate people to use green electricity. In future IT can make less impact on the environment by changing the user’s attitude and by the new technologies and green electricity.


Appendix

References
Aronson, J.S. 2008, ‘Making IT a positive force in Environmental change’, IEEE computer society, Vol.10 Issue 38, pp 43-45.
Higgs, T. 2007, ‘Energy Efficient Computing’, IEEE computer society, pp 210-215.
Maleshefski, T. 2007,’IT planner 5 steps to green IT’, eWeek, Vol.24 Issue 32, pp40-46.
Murugesan, S. 2008, ‘Harnessing Green IT: Principles and Practices’, IEEE computer society, Vol.10 Issue 1, pp 24-33.
Wang, D. 2007, ‘Meeting Green Computing Challenges’, IEEE computer society, Vol. 1 Issue 1, pp 1-4.
Weiss, A. 2007, ’Can the PC go green?’, ACM digital library, Vol.11 Issue 2, pp 18-25.
Williams, J. 2008, ‘Green: The new computing coat of Arms?’, IEEE computer society, Vol. 10 Issue 1, pp 12-16.

Tuesday, June 3, 2008

Bluetooth with E-commerce

Bluetooth
1. What is Bluetooth?
1.1 Introduction
Bluetooth technology provides wireless connectivity among devices to exchange data and voice. Bluetooth is used radio frequency technology. It provides similar functionality like IrDA protocol, but Bluetooth has some significant advantages compared with IrDA. IrDA is popular in PC peripherals but it has several limitations. Those are short connection distance and line-of-sight requirements for connection. Bluetooth doesn’t have these limitations because of Radio Frequencies. Bluetooth can connect devices within up to 10m and that can be increased when the transmitter power is increased. Apart from that, devices don’t need to be line of sight and Bluetooth can connect devices through walls and also through non-metal objects. The other main advantage of Bluetooth is it can simultaneously handle voice and data. This caused to use Bluetooth for hand free headsets in mobile devices and various Internet applications. Meanwhile Bluetooth is relatively inexpensive, need less energy and it is automatic. That means it is not necessary to setting up the connection or pushes the start button.
1.2 History of Bluetooth
Bluetooth is initiated by Swedish company Ericcson in 1994 to eliminate wire connections in homes and offices. Then Bluetooth special interest group (SIG) is established by joining five major companies such as Toshiba, IBM, Intel, Nokia and Ericsson to further develop Bluetooth technology and promote it for commercial acceptance in February 1998. After that, SIG went global and invite other companies to join. Meanwhile they made the free access to Bluetooth. Then lots of companies started to use this technology and in December 1999 the four major companies join with SIG as promoters. Those are Microsoft, Agere Systems, 3com and Motorola.
1.3 Advantages of Bluetooth
• No longer to bound on fixed location
• Rid cables and make free space in offices and homes
• Communicate automatically
• Safety factor- It is very dangerous and illegal to use one hand to hold the cell phone while driving
• Less complexity in computer networks
• Cost effective
• Less energy consuming
• Ability to handle data and voice simultaneously
• There is an acknowledgment system guaranteed data transmission
• Easy and efficient to use
1.4 Applications of Bluetooth
• Connect computer peripherals such as PC, printer, scanner and fax machine wirelessly
• Bluetooth enabled digital cameras allow to send images from any location to any location
• Connect wireless headsets to mobile phone
• Have automatic synchronization among notebook, Desktop and mobile phone
• Portable land phone at home
• Wireless mouse and keyboards

1.5 Limitations of Bluetooth technology
• Slow transfer rate
This is fine to talk on wireless headset or synchronizing contacts, but when the large file is being transferred, that will take much time, because Bluetooth transfers data at about 3 megabits per second.
• Short communication range (up to 100m)
• Security problems

2. Latest and domestic developments of Bluetooth technology
2.1 Introduction
According to the Bluetooth official web site, Bluetooth technology turns 10 years old this year. The first commercial product of Bluetooth appeared after 2000. SIG indicates that Bluetooth enabled products are been increased by 13 folds every year.
2.2 Bluetooth Core Specification Version 2.1
New version of the Bluetooth specification has several new features to give benefits to users.
2.2.1 Improved pairing
New version of Bluetooth has fewer steps to make an initial connection with other devices than previous. New version eliminated the users come up with long personal identification numbers (PIN). Instead of that user gets 16 digit alphanumeric codes. This version supports to pair the mobile phone and headset very easier by clicking ‘Add Headset’ from the phone menu. New enhanced version gives more security and establishes the connection in few seconds.
2.2.2 Lower power consumption
Sniff Subrating feature is used to optimize the power consumption. This can increase the battery life of mice, keyboards, and medical device by up to five times.
2.3 Future of Bluetooth Technology
2.3.1 Ultra-wideband technology
The next version of Bluetooth technology will combine with the Ultra-wideband technology. As a result of that high-speed Bluetooth channels can be created. This will help to strength the position of Bluetooth.
Ultra-wideband technology based on the WiMedia standard, and it facilitates the make high speed interconnection in wireless devices. Ultra wideband is a convergence layer that provides underlying transport mechanism for different applications.



2.3.2 Linking Bluetooth and Wi-Fi
Bluetooth Technology will gain faster service next year by linking with Wi-Fi technology. This will make easier and faster to transfer large amount of images, videos and music among wireless devices. This new technology doesn’t have a name yet. Some products, like laptops, already combine Bluetooth and Wi-Fi functions, but they work off separate chips. Most likely, manufacturers will use single chips still under development that combine Bluetooth and Wi-Fi capabilities. The combination devices will use the regular low-power Bluetooth radios to recognize each other and establish connections. If they need to transfer a large file, they will be able to turn on their Wi-Fi radios, and then turn them off to save power after finishing the transfer.
2.4 Latest Applications of Bluetooth
2.4.1 Residential microwave ovens
Now Bluetooth microwave ovens are available. Microwave ovens and Bluetooth are used same frequency brands, but there was a doubt that microwave ovens might interference the Bluetooth network, because of its high power output. Finally researches discovered the Bluetooth devices tolerate the high level of interference. Power leakages of this kind of microwave ovens are limited by concerning about the user safety.

2.4.2 Stowaway Universal Bluetooth Keyboard

Almost any device those have Bluetooth technology support this new product (smart phones, PDAs, notebooks).


3. Impacts and implications of Bluetooth in e-commerce development and management
3.1 Introduction
Bluetooth is converted e-commerce into m-commerce (Mobile commerce). Mobile commerce is known as nest generation of e-commerce. M-commerce facilitates users to access Internet without need to find a place to plug-in. Today m-commerce is a more efficient way to communicate with customers because PDAs and smart phones are so popular among them.
3.2 M-commerce
M-commerce means buying and selling of goods services using wireless devices such as cellular phones and PDAs. M-commerce enables mobile phones to change currency using applications.
3.3 Mobile cash

This is a billing platform and this is used pay for online services and products using the mobile phones. This is much same with the process of paying online transactions using credit or debit card in e-commerce. But this will allow doing online transactions those who haven’t credit or debit cards. This is much easy to use.


3.4 Mobile banking
Mobile banking means perform banking transactions through mobile phones. Major Australian banks have delayed launching a mobile banking product because they were uncertain about whether it would be successful.
3.5 Bluetooth Marketing and advertising
Bluetooth Marketing is an effective channel through which to engage with consumers via the mobile device by offering premium mobile content associated with your brand. There are a number of different environments where Bluetooth can be used to encourage brand participation including out of home advertising sites, exhibitions and events, and retail environments.
3.5.1 Magic Beamer
Magic Beamer is a mobile marketing tool that enables business to start, run and customize their mobile campaign. This use Bluetooth technology to transfer data, therefore this is high efficient, high security and low cost. This tool allows transferring advertisements and information as a digital content to mobile phones and PDAs.



3.6 Bluetooth Marketing in Australia
3.6.1 Ford Australia

Ford Australia started to do mobile marketing by creating four separate interactive Bluetooth zones on its stand to promote four separate vehicle categories such as small cars, medium to large family sedans, Ute and SUVs. This allows Bluetooth enabled visitors to download animations, videos, ringtones and m-vouchers to each of vehicle category.

3.6.2 Breeze Tech
This is wireless mobile marketing technology company in Sydney Australia. This company provides location based marketing campaigns using Bluetooth technology. This provides service for all states in Australia.


4. Effects of Bluetooth on e-commerce
4.1 Introduction
Today e-commerce is very popular among lots people around the world. It gives lots of benefits to users. Now e-commerce is embedded with Bluetooth technology. Then this new scenario is called M-commerce. M-commerce gives lots of advantages to users than e-commerce.
4.2 Advantages to adopt Bluetooth technology for e-commerce
1. Mobile commerce is rapid approaching the business forefront. According to the research details m-commerce will be the dominant force in business and the society. The following graph shows increasing speed of m-commerce sales in Europe from 2001 to 2006.


Following graph shows the number of mobile subscribes and PC Internet users from 1996 to 2005.


2. E-commerce provides facility for users to access anyone at anytime, now m-commerce extends it with providing facility to access anyone in anywhere and anytime.
3. Security- M-commerce has specific end user device, which can offers specific level of inbuilt security. In M-commerce, the SIM card commonly uses as smart card that stores confidential user information such as user’s secret authentication key.
4. Location dependent services- Registered users can be localised using GPS or GSM technologies. Then location based services can be provided including local information services about hotels, travel information and emergency calls.
5. Convenience- Mobile phones are ideal tool for perform personal tasks because of its size and weight.
6. Personalization - Mobile phones are not shared between users. Personalized services can be offered according to specified user characteristics.
4.3 Disadvantages of M-commerce
1. Mobile devices have limited capabilities. These capabilities are depending on the version of mobile phones. Therefore the service must be adjusted accordingly.
2. Mobile devices are easier to theft. According to the government report more than 700000 mobile phones are stolen in UK each year
4.4 Security Challenges in M-commerce
• Confidential data can be obtained, anonymously, and without the owner's knowledge or consent, from some Bluetooth enabled mobile phones.
• Wireless communications are susceptible to eavesdropping. Mobile devices can be easily stolen.
• Secure m-commerce solutions with Bluetooth technology
• Data needs to be encrypted to protect m-commerce transactions. Also lost or stolen devices present a problem as one needs to make sure that the only the authorised user for the device can perform the transaction.

• Toshiba’s Bluetooth m-coupon application

5. Options and Priorities of designing Bluetooth M-commerce Applications
5.1 Compatibility and Interoperability
Various kinds of Bluetooth devices are available in the M-commerce environment from different vendors. These devices have compatibility problems. These compatibility problems might be depending on the software profiles which the installed in Bluetooth devices.
5.1.2 Research at UTS
These compatibility issues have experienced during the setting up of Bluetooth mobile enterprise within an existing WLAN laboratory at the University of Technology, Sydney. Pradhan, Lawrence, Das and Newton (2004) claim this research used
• Laptop 1(W2K) used a Bluetooth PCMCIA card
• Laptop 2(W2K) used a USB Belkin Bluetooth stub
• One PDA had inbuilt Bluetooth whilst the other used a plug-in Bluetooth attachment.
• Two types of Bluetooth enabled mobile phones: Sony Ericsson T68i with a Bluetooth headset and a Nokia 7650
Research found that,
• Initial setup on most devices reasonably simple
• The researchers did find incompatibility issues with devices (in particular the Nokia phone).
• Laptops which installed a Bluetooth PCMCIA card can quickly established the connectivity with PC after separated it by two walls and a hallway.
• Mobile devices face temporary loss of network connectivity when they roam. Bluetooth operates in the 2.4 GHz frequency there is potential for interference with other devices such as the 802.11 LAN and cell phones on the same frequency.

5.2 Solutions for Compatibility and interoperability problems
5.2.1 Case Study 1
Motorola
Motorola faced challenge to achieve compatibility and operability on their Bluetooth enabled mobile phones. According to the Motorola website, careful and methodological approach of Bluetooth architecture is required to achieve operability and compatibility in among Bluetooth devices.
Therefore Motorola has implemented a five split interoperability strategies,
• Inclusive system implementation - Motorola offers a comprehensive platform whose qualified components reduce the chance of interoperability problems due to component mismatch.
• TTCN-based development test framework - Formal test scripting language is used for exercise the solution at the HCI-and-below level. That can make solid implementation of the Bluetooth protocol.
• SIG standards participation – Motorola expanded their leadership position on the Bluetooth SIG for clarify and evolve Bluetooth features and also to assure early and frequent testing of reference implementations.
• Unplug Fest participation - At the SIG-sponsored Unplug Fests around the world. Motorola uses this for interoperability and making sure the components can be expected to function seamlessly in any environment.
• Informal testing - Motorola meet regularly with leading Bluetooth developers to clarify implementation questions and verify interoperability. These efforts have paid off. Quite simply, The Bluetooth Platform Solution from Motorola can be expected to give the highest level of interoperability available anywhere.

5.2.2 Case Study 2
Dell
Development of Bluetooth wireless technology, device services vary and interoperability problems between devices are not uncommon. In addition, the Bluetooth specifications body has added many profiles that address specific devices and market scenarios. This proliferation could tend to increase interoperability problems. As the technology matures, it is expected that most device types will converge on a common set of Bluetooth services so that these Interoperability problems reduce.
Dell's integrated Bluetooth solution carefully evaluates any software that accompanies new Bluetooth devices before installing it on their systems. The Dell Bluetooth solution supports many devices without the need to install an additional or replacement Bluetooth protocol stack.



5.3 Security
Security of wireless systems is anyway less compared with wired systems. Bluetooth devices have several threats and these threats can make criminals with misusing others sensitive data.
5.3.1 Threats in Bluetooth devices
5.3.1.1 Bluetooth Pairing Attack
Paring is a very important part of Bluetooth. Eavesdropping on PIN based paring process can be happen very rapidly and can easily get the PIN. Then attacker can potentially issue commands for the other device. In this case an attacker gains full access to memory content and becomes a trusted device.
5.3.1.2 The SNARF Attack
Bluesnarfing attacks mean unauthorised access of wireless devices through Bluetooth connection. Attackers attempt to connect to weakly secured phones and grab the data. In this case some makes of device, to connect to the device without alerting the owner of the target device of the request, and gain access to restricted portions of the stored data such as business cards, properties, change log, IMEI Number, which uniquely identifies the phone to the mobile network. This is normally only possible if the device is in "discoverable" or "visible" mode.
5.3.1.3 BACKDOOR Attack
The backdoor attack involves establishing a trust relationship through the "pairing" mechanism, but ensuring that it no longer appears in the target's register of paired devices. After connection is established attacker may be free to continue to use any resource that a trusted relationship with that device grants access. This means that not only can data be retrieved from the phone, but other services, such as modems or Internet, WAP and GPRS gateways may be accessed without the owner's knowledge or consent.
5.3.1.4 BLUEBUG Attack
The Bluebug attack creates a successive profile connection to the device. In BlueBug attacks can allow an attacker full access to a device to initiate calls, including premium rate phone calls to a premium line they have set up themselves. In this case Call forwarding diverts can be set up, allowing the owner's incoming calls to be captured, either to provide a channel for calls to more expensive destinations or for identity theft by impersonation of the victim.
5.3.1.5 BLUEJACKING Attack
Bluejacking is becoming a popular mechanism for exchanging anonymous messages in public places. The technique involves abusing the Bluetooth "pairing" protocol, the system by which Bluetooth devices authenticate each other, to pass a message during the initial "handshake" phase. This is not harmful. This has used for marketing purposes.

Example –Paris Hilton
Paris Hilton’s mobile phone was hacked. That was BLUESNARF attack and her mobile phone content ended up on the Internet. Some people suggest that attacker answered to the secret question of Paris and changed the password.


5.3.2 Evidence from Nokia
ZDNet indicate that Nokia has confirmed that some of its Bluetooth-enabled mobile phones are open to to "bluesnarfing," in which an attacker exploits a flaw to read, modify and copy a phone's address book and calendar without leaving any trace of the intrusion. Nokia said that a bluesnarf attack "may happen in public places, if a device is in the visible mode and the Bluetooth functionality is switched on. The phones vulnerable to 'snarf' attack include the Nokia 6310, 6310i, 8910 and 8910i phones.
5.4 Security Challenges of Bluetooth
5.4.1 Encryption data can easily crack
Most Bluetooth devices have encryption settings but those can be easily cracked with tools and techniques that are readily available on the internet. Businesses need to think very carefully about the information they store on a phone or PDA.
5.4.2 No centralized point for control security in temporary networks
Then Bluetooth to create a temporary network, it is usually an ad hoc network. That is, computers communicate directly with each other rather than going through a wireless access point (WAP). This means no centralized point of security control, as like in a WAP. Thus, security becomes a major concern because important data can be exposed to others on the Bluetooth network.
5.4.3 Risk of using Bluetooth handsets
Two security researchers say they have discovered a technique for taking control of Bluetooth-enabled mobile phones, even when the handsets have security features switched on.
The technique is a practical implementation of a technique described by Ollie Whitehouse of security firm @Stake last year, which allows an attacker with specialized equipment to connect to a Bluetooth handset without authorization. Once the connection is established, the attacker could make calls on the target's handset, siphon off data or listen in on data transfers between the device and, for example, a PC. Some security firms recommend financial traders avoid Bluetooth handsets because of the potential attack.
5.4.4 Hack the PIN Number while pairing
The original method required an attacker to listen in on the initial connection procedure between two Bluetooth devices-- called "pairing"-- which occurs only rarely. The new attack however allows an attacker to force two devices to repeat the pairing procedure, allowing the attacker to listen in and determine the identification code (PIN) used to protect the connection.
According to the Bluetooth specification, PINs can be 8-128 bits long. Unfortunately, most manufacturers have standardized on a four decimal-digit PIN. This attack can crack that 4-digit PIN in less than 0.3 sec on an old Pentium III 450MHz computer, and in 0.06 sec on a Pentium IV 3Ghz HT computer.
5.5 Case Study 3

AnZ bank.
AnZ bank is going to launch a browser based mobile banking system. This is the first bank that introduces this kind of service for their customers in Australia. This has developed by New Zealand Company called ‘M-Com’. M-banking is a complex process and it gives facility to use mobile phones to transfer money between accounts in the AnZ bank and also between the other accounts in Australia. AnZ faced two challenges to in this implementation.
Compatibility
One challenge was application compatibility among various mobile phones. AnZ tested their application on the different kinds of mobile phones available in the market and finally it developed system compatible with 76 mobile phones.
Security
Other major challenge was the security. As a solution for this mobile bank transactions are protected using SSL encryption. Apart from that customers will also need to use a security token from the bank to verify their identity. Manufacturer of this indicates that user information wasn't stored on the phone, so if a phone was lost or stolen an M-Banking account couldn't be accessed. And also SMSs do not contain any information identifying the customer.
5.6 Conclusion
Compatibility and security are the major sections those should be consider before implementing e-commerce application with Bluetooth technology. Bluetooth e-commerce applications must be compatible with maximum number of mobile devices in the market.

5. Future development of Australian eMarket
Currently e-commerce is popular among Australian society. Today people are very busy and they don’t like to travel and send more time for shopping. On the other hand, sellers also like to promote their products on e-commerce, because it is cheaper and easier for them. They don’t get trouble handle customers and also don’t need workers to supply customer service. E-commerce provides facility to buy anything at anytime. Now Bluetooth and other wires technologies have got together with e-commerce. Therefore now it calls as M-commerce. M-commerce expand e-commerce facilities by adding new term to it. That is anything, anytime and anywhere.
Mobile devices are very popular in the society. Therefore lots of people believe that M-commerce will be more efficient than e-commerce in future, because that is very convenient. Now AnZ bank is going to launch browser based M-banking system in Australia. Then AnZ customers can easily do the mobile transactions. Other leading banks in the Australia also try to open this new door for their customers. Then in future lots of sellers will like to establish m-commerce facility for their shops.

6. Final Conclusion
Bluetooth is a cheaper wireless technology. It utilizes radio frequency. Therefore Bluetooth has several limitations. Bluetooth technology will decrease these limitations by joining with Wi-Fi and ultra-wideband technology.
Now e-commerce is going to convert into M-commerce. Bluetooth can provide significant benefits for that. Bluetooth marketing is very effective marketing method because Bluetooth can provide location based marketing using GPS technologies. But these types of marketing strategies must be compatible with higher amount of Bluetooth devices. Therefore compatibility must be tested before start this kind of thing to get more benefits.
Apart from that Bluetooth can be used to for M-banking. Security is a major issue that should be considered in M-banking. Bluetooth is a wireless technology; therefore it can be easily caused to eavesdropping. Data must be encrypted before transmitting. Apart from that authorization is necessary to identify the user.
Mobile phones can be easily stolen. Therefore sensitive data must not be stored on the mobile phones. And M-commerce user’s identity information such as PIN shouldn’t be send as SMS.
Bluetooth is a valuable technology for future m-commerce development. But there are some issues those must be carefully consider before use the Bluetooth technology for the M-commerce.




Appendix
References
Bellevue, W. A., 2007, BLUETOOTH SIG ADOPTS NEW CORE VERSION 2.1 + EDR, Bluetooth SIG, viewed 31-Jul-2007, <‘http://bluetooth.com/Bluetooth/Press/SIG/BLUETOOTH_SIG_ADOPTS_NEW_CORE_VERSION_21__EDR.htm’>.
Bhagwat, P., 2001,’ Bluetooth: technology for short-range wireless apps’, IEEE computer society, Vol. 5 Issue 3, pp 96-103.
Dunlop, J. & Amanquah, N., 2005, ’ High capacity hotspots based on Bluetooth
Technology’, Vol. 152 Issue 5, IEEE computer society, pp 521-528.

Hager, C.T. & Midkiff, S.F., 2003, ‘An analysis of Bluetooth security vulnerabilities’, IEEE computer society, Vol.3, pp 20-20.
Guillermo A. F., Aditya K., Le P. & Mehul V.,2004, ‘An empirical study of Bluetooth performance’ ACM Digital Library, pp 82-94.
Kurnia, S., Heejin Lee & Song Y., 2007, ‘Understanding Consumers' Expectations of Mobile Data Services in Australia’, IEEE computer society, pp 14-14.
Jaap,H., Mahmoud N., Jon I., Olaf J. J. & Warren A.,1998,’ Bluetooth: vision, goals, and architecture ’, ACM Digital Library, Volume 2 Issue 4,pp 42-50.
Mahesh, S., 2008, ANZ starts rush to mobile banking, Australia, Viewed on 29-March-2008, <’ http://www.australianit.news.com.au/story’>
Mindi M & Matt L, 2005, Understanding Bluetooth Technology,<’ htps://www.pffbank.com/index.htm’>.
McLane, J., 2008, BMW Bluetooth Technology, Australia, <’ http://www.motorpoint.com.au’>.
Munir, K., 2004, Nokia: Bluetooth flaw gnaws at phone security, ZDNet, UK, viewed 10-Feb- 2004, <’ http://www.zdnet.com.au/news’>.
Myra, D., 2003, ‘Bluetooth: a technical overview’, ACM Digital Library, Vol. 9 Issue 4 pp 82-94.
Pradhan, S., Lawrence, E., Das, J. & Newton, S.2004, ‘Bluetooth potential in the m-enterprise: a feasibility study’, IEEE computer society, Vol.2 Issue 38, pp 746-751.
Sairam, K. V. S. S. S. S., Gunasekaran, N. & Reddy, S. R., 2002, ‘Bluetooth in Wireless Communication’, IEEE computer society, Vol. 40 Issue 6,pp 90-97.

Savvas, A., 2007, Bluetooth 'poses serious threat to business, UK, viewed 29-March- 2007, < ‘http://www.computerweekly.com’>.
Senn, J.A, 2000, ‘The emergence of m-commerce’, IEEE computer society, Vol 33 Issue12, pp 148-150.
Shore, R., Miller, A. B., 2005, ‘The Bluetooth Technology: Merits and Limitations’, IEEE computer society, pp 80-85.

Wang, J.J.,Song, Z.; Lei, P. & Sheriff, R.E.,2005,’ Design and Evaluation of M-Commerce Applications’, IEEE computer society ,pp 745-749.
Wang, W., 2002, ‘Bluetooth: a new era of connectivity’, IEEE computer society, Vol. 3 Issue 3, pp 38-42.
Yan, S.Y. & James, G., 2005, ‘Secure Electronic and Mobile Commerce’, IEEE computer society, Vol 2, pp 654-659.
Yonghee, S., Hyori J. & Munkee C., 2006, ‘Analysis of the Consumer Preferences toward M-Commerce Applications Based on an Empirical Study’, IEEE computer society, pp 654-659.

Create Image Map using Applets for shopping cart


I created shopping cart using java Applets, PHP and HTML.

We need java run time to run the applet in browser. MS explorer has java console.

This is the HTML file--> In here each param value is passed according to a special format. That value tokenize using that format in the applet.






Java Applet -->
import java.util.*;
import java.awt.*;
import java.applet.Applet;
import java.applet.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;

class Node extends Panel{
double x;
double y;

double dx;
double dy;

boolean fixed;
boolean visible=true;
boolean link=true;
String lbl;
}


class Edge {
int from;
int to;

double len;
}


class GraphPanel extends Panel
implements Runnable, MouseListener, MouseMotionListener {
Graph graph;
int nnodes;
Node nodes[] = new Node[100];

int nedges;
Edge edges[] = new Edge[200];

Thread relaxer;

GraphPanel(Graph graph) {
this.graph = graph;
addMouseListener(this);
}



int findNode(String lbl) {
for (int i = 0 ; i < nnodes ; i++) {
if (nodes[i].lbl.equals(lbl)) {
return i;
}
}
return addNode(lbl);
}
int addNode(String lbl) {
Node n = new Node();
n.x = 10 + 380*Math.random();
n.y = 10 + 380*Math.random();
n.lbl = lbl;
nodes[nnodes] = n;
nodes[nnodes].addMouseListener(this);
return nnodes++;
}
void addEdge(String from, String to, int len) {
Edge e = new Edge();
e.from = findNode(from);
e.to = findNode(to);
e.len = len;
edges[nedges++] = e;
}

public void run() {
Thread me = Thread.currentThread();
while (relaxer == me) {
relax();
//if (random && (Math.random() < 0.03)) {
if (Math.random() < 0.03) {
Node n = nodes[(int)(Math.random() * nnodes)];
if (!n.fixed) {
n.x += 100*Math.random() - 50;
n.y += 100*Math.random() - 50;
}
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
break;
}
}
}

synchronized void relax() {
for (int i = 0 ; i < nedges ; i++) {
Edge e = edges[i];
double vx = nodes[e.to].x - nodes[e.from].x;
double vy = nodes[e.to].y - nodes[e.from].y;
double len = Math.sqrt(vx * vx + vy * vy);
len = (len == 0) ? .0001 : len;
double f = (edges[i].len - len) / (len * 3);
double dx = f * vx;
double dy = f * vy;

nodes[e.to].dx += dx;
nodes[e.to].dy += dy;
nodes[e.from].dx += -dx;
nodes[e.from].dy += -dy;
}

for (int i = 0 ; i < nnodes ; i++) {
Node n1 = nodes[i];
double dx = 0;
double dy = 0;

for (int j = 0 ; j < nnodes ; j++) {
if (i == j) {
continue;
}
Node n2 = nodes[j];
double vx = n1.x - n2.x;
double vy = n1.y - n2.y;
double len = vx * vx + vy * vy;
if (len == 0) {
dx += Math.random();
dy += Math.random();
} else if (len < 100*100) {
dx += vx / len;
dy += vy / len;
}
}
double dlen = dx * dx + dy * dy;
if (dlen > 0) {
dlen = Math.sqrt(dlen) / 2;
n1.dx += dx / dlen;
n1.dy += dy / dlen;
}
}

Dimension d = getSize();
for (int i = 0 ; i < nnodes ; i++) {
Node n = nodes[i];
if (!n.fixed) {
n.x += Math.max(-5, Math.min(5, n.dx));
n.y += Math.max(-5, Math.min(5, n.dy));
}
if (n.x < 0) {
n.x = 0;
} else if (n.x > d.width) {
n.x = d.width;
}
if (n.y < 0) {
n.y = 0;
} else if (n.y > d.height) {
n.y = d.height;
}
n.dx /= 2;
n.dy /= 2;
}
repaint();
}

Node pick;
boolean pickfixed;
Image offscreen;
Dimension offscreensize;
Graphics offgraphics;

final Color fixedColor = Color.blue;
final Color selectColor = Color.gray;
final Color edgeColor = Color.black;
final Color nodeColor = new Color(100, 100, 100);
final Color arcColor1 = Color.black;
final Color arcColor2 = Color.pink;
final Color arcColor3 = Color.red;

public void paintNode(Graphics g, Node n, FontMetrics fm) {
int x = (int)n.x;
int y = (int)n.y;
g.setColor((n == pick) ? selectColor : (n.fixed ? fixedColor : nodeColor));
int w = fm.stringWidth(n.lbl) + 10;
int h = fm.getHeight() + 4;
g.fillRect(x - w/2, y - h / 2, w, h);
g.setColor(Color.black);
g.drawRect(x - w/2, y - h / 2, w-1, h-1);
g.drawString(n.lbl, x - (w-10)/2, (y - (h-4)/2) + fm.getAscent());
//this.update(g);
}

public synchronized void update(Graphics g) {
Dimension d = getSize();
if ((offscreen == null) || (d.width != offscreensize.width) || (d.height != offscreensize.height)) {
offscreen = createImage(d.width, d.height);
offscreensize = d;
if (offgraphics != null) {
offgraphics.dispose();
}
offgraphics = offscreen.getGraphics();
offgraphics.setFont(getFont());
}

offgraphics.setColor(getBackground());
offgraphics.fillRect(0, 0, d.width, d.height);
for (int i = 0 ; i < nedges ; i++) {
Edge e = edges[i];
if (nodes[e.from].visible==true && nodes[e.to].visible==true) {
int x1 = (int)nodes[e.from].x;
int y1 = (int)nodes[e.from].y;
int x2 = (int)nodes[e.to].x;
int y2 = (int)nodes[e.to].y;
int len = (int)Math.abs(Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)) - e.len);
offgraphics.setColor((len < 10) ? arcColor1 : (len < 20 ? arcColor2 : arcColor3)) ;
offgraphics.drawLine(x1, y1, x2, y2);}
}

FontMetrics fm = offgraphics.getFontMetrics();


for (int i = 0 ; i < nnodes ; i++) {
if(nodes[i].visible == true){
paintNode(offgraphics, nodes[i], fm);
}
}
g.drawImage(offscreen, 0, 0, null);
}

//1.1 event handling

//********************************************************************
public void mouseClicked(MouseEvent e) {
// nodes must visible here
}

public void setVisible(boolean b)
{
Node n1 = this.nodes[this.findNode(graph.center1)];
n1.visible=b;
Node n2 = this.nodes[this.findNode(graph.center2)];
n2.visible=b;
Node n3 = this.nodes[this.findNode(graph.center3)];
n3.visible=b;
Node n4 = this.nodes[this.findNode(graph.center4)];
n4.visible=b;
Node n5 = this.nodes[this.findNode(graph.center5)];
n5.visible=b;
Node n6 = this.nodes[this.findNode(graph.center6)];
n6.visible=b;
Node n7 = this.nodes[this.findNode(graph.center7)];
n7.visible=b;
Node n8 = this.nodes[this.findNode(graph.center8)];
n8.visible=b;
Node n9 = this.nodes[this.findNode(graph.center9)];
n9.visible=b;
Node n10 = this.nodes[this.findNode(graph.center10)];
n10.visible=b;
Node n11 = this.nodes[this.findNode(graph.center11)];
n11.visible=b;
Node n12 = this.nodes[this.findNode(graph.center12)];
n12.visible=b;
Node n13 = this.nodes[this.findNode(graph.center13)];
n13.visible=b;
Node n14 = this.nodes[this.findNode(graph.center14)];
n14.visible=b;
Node n15 = this.nodes[this.findNode(graph.center15)];
n15.visible=b;
Node n16 = this.nodes[this.findNode(graph.center16)];
n16.visible=b;
Node n17 = this.nodes[this.findNode(graph.center17)];
n17.visible=b;

}

public void hasLink()
{
Node n1 = this.nodes[this.findNode(graph.center1)];
n1.link=false;
Node n2 = this.nodes[this.findNode(graph.center2)];
n2.link=false;
Node n3 = this.nodes[this.findNode(graph.center3)];
n3.link=false;
Node n4 = this.nodes[this.findNode(graph.center4)];
n4.link=false;
Node n5 = this.nodes[this.findNode(graph.center5)];
n5.link=false;
Node n6 = this.nodes[this.findNode(graph.center6)];
n6.link=false;
Node n7 = this.nodes[this.findNode(graph.center7)];
n7.link=false;
Node n8 = this.nodes[this.findNode(graph.center8)];
n8.link=false;
Node n9 = this.nodes[this.findNode(graph.center9)];
n9.link=false;
Node n10 = this.nodes[this.findNode(graph.center10)];
n10.link=false;
Node n11 = this.nodes[this.findNode(graph.center11)];
n11.link=false;
Node n12 = this.nodes[this.findNode(graph.center12)];
n12.link=false;
Node n13 = this.nodes[this.findNode(graph.center13)];
n13.link=false;
Node n14 = this.nodes[this.findNode(graph.center14)];
n14.link=false;
Node n15 = this.nodes[this.findNode(graph.center15)];
n15.link=false;
Node n16 = this.nodes[this.findNode(graph.center16)];
n16.link=false;
Node n17 = this.nodes[this.findNode(graph.center17)];
n17.link=false;

}

public void mousePressed(MouseEvent e) {

this.setVisible(false);
this.hasLink();
//addMouseMotionListener(this);

double bestdist = Double.MAX_VALUE;


int x = e.getX();
int y = e.getY();
for (int i = 0 ; i < nnodes ; i++) {
Node n = nodes[i];
double dist = (n.x - x) * (n.x - x) + (n.y - y) * (n.y - y);
if (dist < bestdist) {
pick = n;
bestdist = dist;
}
else {
n.fixed = false;
n.visible=false;
}
}
pick.fixed = true;
pickfixed = pick.fixed;

pick.visible=true;
pick.x = x;
pick.y = y;

this.NodeDisplay(graph.center1, graph.edges1);
this.NodeDisplay(graph.center2, graph.edges2);
this.NodeDisplay(graph.center3, graph.edges3);
this.NodeDisplay(graph.center4, graph.edges4);
this.NodeDisplay(graph.center5, graph.edges5);
this.NodeDisplay(graph.center6, graph.edges6);
this.NodeDisplay(graph.center7, graph.edges7);
this.NodeDisplay(graph.center8, graph.edges8);
this.NodeDisplay(graph.center9, graph.edges9);
this.NodeDisplay(graph.center10, graph.edges10);
this.NodeDisplay(graph.center11, graph.edges11);
this.NodeDisplay(graph.center12, graph.edges12);
this.NodeDisplay(graph.center13, graph.edges13);

this.NodeDisplay(graph.center14, graph.edges14);
this.NodeDisplay(graph.center15, graph.edges15);
this.NodeDisplay(graph.center16, graph.edges16);
this.NodeDisplay(graph.center17, graph.edges17);

this.selectNode(pick);

repaint();
e.consume();
}




public void selectNode(Node n)
{
if(n.link == true)
{
if(pick.lbl.equals("Apples"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=3007"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}
}
else if(n.lbl.equals("Grapes"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=3006"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}
}
else if(n.lbl.equals("Peaches"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=3005"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}

else if(n.lbl.equals("Bananas"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=3004"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}

else if(n.lbl.equals("Navel_Oranges"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=3003"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Cheddar_Cheese(1000g)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=3000"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}

else if(n.lbl.equals("Cheddar_Cheese(500g)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=3001"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}



else if(n.lbl.equals("T'Bone_Steak(500g)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=3002"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}

else if(n.lbl.equals("Fish_Fingers(S)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=1001"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}


else if(n.lbl.equals("Fish_Fingers(L)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=1000"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}


else if(n.lbl.equals("Shelled_Prawns"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=1003"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}


else if(n.lbl.equals("Tub_Ice_Cream(S)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=1004"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}

else if(n.lbl.equals("Tub_Ice_Cream(L)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=1005"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}


else if(n.lbl.equals("HamburgerPatties"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=1002"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}



else if(n.lbl.equals("Earl_Grey_Tea_Bags(S)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=4000"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Earl_Grey_Tea_Bags(M)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=4001"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Earl_Grey_Tea_Bags(L)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=4002"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Earl_Grey_Tea_Bags(L)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=4002"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Instant_Coffee(S)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=4003"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Instant_Coffee(L)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=4004"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}

else if(n.lbl.equals("Choclate_Bar"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=4005"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Panadol(L)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=2001"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Panadol(S)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=2000"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Bath_Soap"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=2002"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Garbage_Bags_Small"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=2003"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}

else if(n.lbl.equals("Garbage_Bags_Large"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=2004"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Washing_Powder"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=2005"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Laundry_Bleach"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=2006"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Dry_dog_food(L)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=5000"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}

else if(n.lbl.equals("Dry_dog_food(s)"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=5001"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Bird_food"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=5002"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("cat_food"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=5003"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
else if(n.lbl.equals("Fish_food"))
{
try{
AppletContext a= graph.getAppletContext();
a.showDocument(new URL("http://charlie.it.uts.edu.au/ ~kgkmohan/Applet/index.php?pid=5004"),"_parent");
}
catch(Exception me)
{
JFrame frame = new JFrame("Show Message Dialog");
frame.setVisible(true);
JOptionPane.showMessageDialog(frame," Exception..... ");
}

}
}



}

public void mouseReleased(MouseEvent e) {
removeMouseMotionListener(this);
if (pick != null) {
pick.x = e.getX();
pick.y = e.getY();
pick.fixed = pickfixed;
pick = null;
pick.visible=false;
}
repaint();
e.consume();
}

//********************************************************************
public void NodeDisplay(String str,String edge)
{
if (str != null){

Node n = this.nodes[this.findNode(str)];
if (n.equals(pick))
{
graph.token(str,edge);
n.x = graph.d.width / 2;
n.y = graph.d.height / 2;
n.fixed = true;
}
}

}

public void mouseEntered(MouseEvent e) {
}

public void mouseExited(MouseEvent e) {
}

public void mouseDragged(MouseEvent e) {
pick.x = e.getX();
pick.y = e.getY();
repaint();
e.consume();
}

/******** Apear Disapear nodes ..... ********/
public void mouseMoved(MouseEvent e) {
}

public void start() {
relaxer = new Thread(this);
relaxer.start();
}

public void stop() {
relaxer = null;
}

}

public class Graph extends Applet implements ActionListener, ItemListener {

GraphPanel panel;
Panel controlPanel;
String edges1, edges2, edges3, edges4, edges5, edges6, edges7, edges8, edges9, edges10, edges11, edges12, edges13, edges14, edges15, edges16, edges17;
String center1, center2, center3, center4, center5, center6, center7, center8, center9, center10, center11, center12, center13, center14, center15, center16, center17;

Dimension d;


public void init() {
setLayout(new BorderLayout());

panel = new GraphPanel(this);
//....

add("Center", panel);
controlPanel = new Panel();


edges1 = getParameter("edges1");
center1 = getParameter("center1");
edges2 = getParameter("edges2");
center2 = getParameter("center2");
edges3 = getParameter("edges3");
center3 = getParameter("center3");
edges4 = getParameter("edges4");
center4 = getParameter("center4");
edges5 = getParameter("edges5");
center5 = getParameter("center5");
edges6 = getParameter("edges6");
center6 = getParameter("center6");

edges7 = getParameter("edges7");
center7 = getParameter("center7");
edges8 = getParameter("edges8");
center8 = getParameter("center8");
edges9 = getParameter("edges9");
center9 = getParameter("center9");
edges10 = getParameter("edges10");
center10 = getParameter("center10");
edges11 = getParameter("edges11");
center11 = getParameter("center11");
edges12 = getParameter("edges12");
center12 = getParameter("center12");
edges13 = getParameter("edges13");
center13 = getParameter("center13");

edges14 = getParameter("edges14");
center14 = getParameter("center14");

edges15 = getParameter("edges15");
center15 = getParameter("center15");

edges16 = getParameter("edges16");
center16 = getParameter("center16");

edges17 = getParameter("edges17");
center17 = getParameter("center17");

d = getSize();

if (center1 != null){
Node n = panel.nodes[panel.findNode(center1)];
{
n.visible=true;
this.token(center1,edges1);
n.x = d.width / 2;
n.y = d.height / 2;
n.fixed = true;
// n.visible=false;
}
}


}



public void token(String center, String edges)
{
for (StringTokenizer t = new StringTokenizer(edges, ",") ; t.hasMoreTokens() ; ) {
String str = t.nextToken();
int i = str.indexOf('-');
if (i > 0) {
int len = 50;
int j = str.indexOf('/');
if (j > 0) {
len = Integer.valueOf(str.substring(j+1)).intValue();
str = str.substring(0, j);
}
panel.addEdge(str.substring(0,i), str.substring(i+1), len);
Node n1 = panel.nodes[panel.findNode(str.substring(0,i))];
n1.visible=true;
Node n2 = panel.nodes[panel.findNode(str.substring(i+1))];
n2.visible=true;
}
}

}
public void destroy() {
remove(panel);
remove(controlPanel);
}

public void start() {
panel.start();
}

public void stop() {
panel.stop();
}

public void actionPerformed(ActionEvent e)
{
Node src = (Node)e.getSource();


}

public void itemStateChanged(ItemEvent e) {
Object src = e.getSource();
boolean on = e.getStateChange() == ItemEvent.SELECTED;
}



public String[][] getParameterInfo() {
String[][] info = {
{"edges", "delimited string", "A comma-delimited list of all the edges. It takes the form of 'C-N1,C-N2,C-N3,C-NX,N1-N2/M12,N2-N3/M23,N3-NX/M3X,...' where C is the name of center node (see 'center' parameter) and NX is a node attached to the center node. For the edges connecting nodes to eachother (and not to the center node) you may (optionally) specify a length MXY separated from the edge name by a forward slash."},
{"center", "string", "The name of the center node."}
};
return info;
}

}









































Your browser probably doesn't understand the <OBJECT> tag so it isn't running the applet or perhaps you need a Java Plugin
Your browser is completely ignoring the <OBJECT> tag!