Tuesday, May 10, 2011

The Dysfunctional Evolution of Wireless Applications

At the current embryonic state of the M2M industry, most wireless M2M applications are new. Many of these new M2M applications are actually existing applications that are being converted to communicate over wireless cellular connections. And even many M2M applications that are being newly developed for a wireless environment are being developed by engineers who are working on their first wireless application. Because wireless data communications is a different and uniquely challenging environment, most of these applications will take more time and effort to get working than originally projected. Many of the problems that engineers run into are architectural and fundamental, which ends up requiring an extensive redesign and rewrite of the application, or abandoning the project outright.
Why do M2M applications, and the engineers that develop them, get into this predicament? Some of the blame comes from the nature of the development process itself. Let me explain how this usually happens.
Fundamentally, most M2M applications are variants of client-server applications. A central server-based application communicates with remote devices that function as clients of the central application. The central application usually gathers data from the clients. Sometimes the central application sends commands to the clients, and sometimes the clients query data from the central application. Most M2M applications are fundamentally client-server in their architecture.
Client-server applications have been successfully architected and implemented for decades. The fundamental approaches are broadly known and practiced, and the development process is as well. And this is at the root of problems with M2M application development. Engineers who develop an M2M application like they do traditional client-server applications are prone to make architectural design decisions that, in a wireless environment, make the application perform poorly, expensive to operate, or simply unable to function.
When engineers start developing a client-server application, the application is usually initially prototyped in the lab. The server application is prototyped on a dedicated PC, and the client component of the application is simulated on a separate, dedicated PC. Usually the two PCs are connected using a direct serial connection to “simulate” the network. Sometimes the client application is actually compiled or ported to run on an actual client device, but at this stage it still communicates with the server over a direct serial connection. The basic functions of the server and the clients are implemented in this prototype, as well as the overall approach to how the server and clients will communicate with each other.
As the development of the client-server application proceeds, the functionality of the client and server components expands to meet the overall application requirements. The connection between the client and server is usually upgraded to running over a local TCP/IP-based network. The application is enhanced to deal with the aspects of communicating across a network, including dealing with multiple concurrent clients, dealing with network addressing, handling flow control, and interfacing to an underlying communications protocol stack. The fundamental architecture set in the bench prototype usually remains unchanged, however.
In the next stage, the client-server application is deployed to operate in the “field” over the public Internet. The communications capabilities of the clients are expanded to deal with static or dynamic address assignment, firewalls and routers, loss of Internet connectivity, and the slightly higher latency that can occur across the public Internet. Server applications are also enhanced to handle dynamic client addresses, the impact of firewalls at both the server and the client, and the expectation of dealing with even more concurrent clients. The fundamental architecture from the bench prototype still remains unchanged.
At this point, the communications architecture of the client-server application is pretty much set in concrete. The data model of the information being exchanged between client and server is fixed. The messaging structure and data flows between the client and server – both the messaging sequences and the message contents – are similarly embedded in the code. The application may be structured around assumptions of timing and latency, outage duration, communications bandwidth, and underlying protocol support that have been valid and worked fine over the networks on which the application has been developed so far. Circuitry has been designed, and software has been developed, tested, modified and refined.
Whether the application was intended to operate in a wireless environment from the start, or is being converted to operate wirelessly after successfully operating over wireline communications, an application developed in this sequence invariably faces serious problems when it attempts to use a wireless communications network. The developer assumes that since they are using a TCP/IP communications stack on both the server and remote client side, that they are isolated from vagaries in the underlying physical network. But many of the assumptions made about the underlying communications transport are completely invalid in a wireless network. By this point in development, however, those assumptions are deeply embedded in the application architecture and implemented in the code.
When this application is now deployed to operate over a wireless network, its performance can differ widely from what is desired or expected. The cost of usage-based charges over the wireless network is usually surprisingly high. The application will regularly experience higher latencies and prolonged loss of communications, which it may or may not handle gracefully. Communications may not be established between the remote devices and the server for reasons that are unfathomable to the developer, because a cell phone works fine in the same location. Very often, these issues are a result of the application design.
For a client-server application that was designed for a wireline transport, fixing it to work well over wireless is never easy. Making a few tweaks to try to get the application to work acceptably is almost never successful. By this stage, significant structural changes are often needed to get the application to work over a cellular transport. Sometimes the scope of those changes is so great that it would be easier to just rewrite the application. Unfortunately the same application developer whose unfamiliarity with wireless got things into this situation often does not immediately comprehend how significant the required design changes are. Not until a few fix attempts are unsuccessful does it become clearer to the developer how much the application needs to be fundamentally changed to work over a wireless transport. Now the project schedule and budget are truly blown.
Following the traditional approach of prototyping and developing client-server applications in a wireline environment, and using design practices that can be made to work over those connections, often leads novice wireless developers to develop applications that really can not work over cellular connections. Someday a large number of application developers will have experience in this environment and will avoid those mistakes. Unfortunately, we are not close to that point today.

Tuesday, April 12, 2011

Wireless Is Different: Advice For Application Developers

The number of applications being created to operate over wireless networks is growing tremendously. Whether writing consumer applications for smartphones, mobile business applications for portable computers, or M2M applications for remote devices, more software engineers are developing applications for this exciting environment. The field is new, however, so most of these engineers have no prior experience in designing applications that communicate over wireless networks. This will get them and their projects into trouble unless they carefully research how these communications networks operate, and understand how they will have to structure their applications to accommodate its unique characteristics.
Most software engineers who develop communicating applications learned their trade by designing applications to communicate over wireline TCP/IP networks. They have learned a set of architectural principles, design guidelines, algorithmic shortcuts, and communications practices appropriate to that communications environment. When they start to work on wireless applications, however, it will come as a shock to many of them that those principles and practices are simply wrong and will not work in the new environment.
In this discussion I am primarily focusing on applications that are designed to communicate across the worldwide public cellular telephone network. Many of my comments and observations will also apply to other wireless networks, including satellite networks, private radio WAN networks, wireless sensor networks, and proprietary unlicensed wireless networks.
Part of the confusion for new wireless developers comes because the cellular network supports TCP/IP communications interfaces on both ends – at the mobile device and at the cellular network point-of-presence accessed over landlines by a central server. Application developers are accustomed to TCP/IP providing a standard set of communications services and a dependable quality of service across a network connection, and abstracting the differences of the underlying physical networks from the developer’s concerns. While TCP/IP connections and sessions are indeed supported across the cellular network, that communication operates differently over wireless connections in some very important ways.
The rest of this discussion will review some of the important differences of wireless networks, how those differences impact TCP/IP-based communications, and the implications for applications designed for this environment.
Usage-Based Charges
In a wireline communications environment there is a fixed cost for the communications service (or at least a fixed monthly charge), and then applications can communicate across the connection as much as the contracted bandwidth will allow – which nowadays is usually a lot.
Wireless networks, on the other hand, charge based on usage – on how much data is transmitted across the network. In fact, cellular charges a lot more than wireline services for equivalent data volume – from 100 to 1,000 times more than wireline connections. Not only is cellular much more expensive for raw, bulk data transmission, but it is even more expensive for transactional usage. Cellular networks charge not only for the payload – the data the application is sending – but they also charge for all of the protocol. That includes headers, error checking bits, acknowledgements, handshaking and session negotiations, and so on. On top of that, some cellular networks take the data volume transmitted during a session and round it up to the nearest 1,000 bytes  or so when the session ends.
Using TCP/IP in a network with usage-based charges clearly incurs some significant costs. TCP/IP is a relatively “chatty” protocol, which is necessary for it to provide the flexibility, reliability and physical network abstraction that developers like so much. The protocol incurs chargeable communications overhead on several dimensions. All of its address advertisement and discovery, route discovery, and network registration transactions are chargeable. All of its session negotiation and establishment, flow control, delivery guarantee and error recovery transactions are chargeable. All of its extended services header information, worldwide addressing, source routing, error detection and other overhead bits are chargeable. Those costs are incurred before the first bit of useful application payload is conveyed.
Beyond the real cost of using TCP/IP, developers used to wireline networks often make their applications “chatty” as well. They send heartbeat and status messages when there is nothing noteworthy to report. When applications do send information, they send a whole block of data, most of which has not changed from the last time or otherwise has limited information content. Applications send text strings when a bit or two would convey as much information to a computer. Developers have applications send diagnostic information continually “just in case” they need to check the logs on a problem. Even worse, developers architect applications so that constant communications is necessary for it to work – to synchronize application state, to synchronize time, to get information by polling rather than send on events, etc. All of these application design decisions, which are done for the convenience of the developer and incur no costs over a wireline network, generate significant unnecessary usage charges over a cellular network.
Limited Bandwidth and Latency
Most wireline TCP/IP connections today are “broadband” connections that provide high bandwidth and low latency. The bandwidth available over wireline connections has grown significantly over the previous decade. As a result, developers have evolved their applications to use more graphics and animation, rich user interfaces, dynamically downloaded applets and plugins, XML-based protocols, and other bandwidth consuming techniques that improve functionality and usability. Developers have also written their applications to be highly interactive, to load or preload relatively large datasets, and to expect relatively short timeouts in managing communications.
On the other hand, wireless networks are significantly bandwidth constrained. Most wireless connections will only operate at data rates two to three orders of magnitude slower than the common wireline connections available today (i.e., only 1/100th to 1/1000th of the wireline data rate). Some networks offer faster channels or connections that approach low end wireline connections, but most M2M applications can not afford the premium charges and higher cost hardware these channels require. In any case, most wireless connections degrade the channel data rate when the remote device is in marginal coverage to even lower throughput than the ideal case.
Relative to their wireline counterparts, wireless networks also introduce higher latency in their connections. The higher latency doesn’t just come from the lower throughput of the communications channel, but also from delays introduced by cellular network elements and signaling in the underlying wireless physical network. In particular, there can be pronounced delays when a device needs to register on a new network (such as after repowering or resetting), when it changes the serving cell site, and when it seeks to establish a new session. Latency is also a symptom when a device is in marginal coverage and has difficulty maintaining the basic wireless connection with the network infrastructure.
Most application developers are not used to developing applications for such bandwidth constrained communications links, or for connections with variable and generally high latencies in interactive transactions. Developers may need to rethink the data flow designs in their applications to accommodate these relatively extreme constraints of wireless networks. Failing to take these factors into account may result in an application that does not work reliably, or which can not establish or maintain a connection at all.
Intermittent Sessions
In many TCP/IP-based applications, the application establishes a session or socket connection between the two ends of the application (i.e., usually server and client), and leaves that connection in place as long as the application is up, even when nothing is being communicated. In a wireline environment there is no “cost” to maintaining a session, and keeping the session active can reduce latency. With an active session, either the client or the server can initiate a short message with minimum delay and processing overhead. It is a little more programming work and processing overhead to initiate a session every time the client or server needs to communicate with its counterpart – and to promptly terminate that session when the transaction is finished.
Cellular networks do not allow sessions to be maintained for any significant period of time, particularly if they are quiescent. To minimize the non-productive consumption of their network resources – including the servers that keep track of active sessions – cellular carriers allow sessions to continue up to a threshold time, and then the carrier interjects and takes down the session. This kind of network intervention to terminate sessions is virtually unknown in the wireline Internet. In addition, some cellular networks will not tolerate devices that do not handle session management in a carrier-specific, wireless aware manner, and carriers may not provide service to devices that exhibit poor behavior.
A developer who has not designed his application to presume that sessions are not established – and that sessions must be set up before every transaction and taken down afterwards – may find the application performs poorly over a wireless network. Latency over wireless networks is already long, and waiting for a communications attempt to time out before beginning to reestablish a session only magnifies that.
Intermittent Connections
Once a device is connected to the wireline Internet, the developer and the application can rely on the communications facilities being available on demand. When the application needs to send data, it can just hand the data and destination address to the TCP/IP protocol stack and rely on it to perform the communications function across the network immediately. Timeouts and retries are often used to address the rare situation when the underlying communications service is unavailable.
With wireless communications, however, it is common for the network to be unavailable to carry communications. With mobile devices, it is almost guaranteed that they will be out of range of the cellular system at some time. Intermittent communications even occurs for stationary devices since other relevant objects are moving – obstacles, interferers, and reflecting surfaces that create multi-path self-interference.
The TCP/IP protocol stack provides limited facilities to deal with the frequency and length of communication interruptions that commonly occur with wireless networks. It is incumbent on the application developer to build many of these facilities into the application. The mobile application has to determine whether the network is available by making direct status queries to the cellular radio, and the server application needs to query the cellular network directly to determine whether the mobile is registered and active. Messages that can not be delivered need to be stored locally – sometimes a very large number for a relatively long time – so that they can be forwarded on to their destination once wireless communications is established. The local application needs to be able to continue performing its basic functions without relying on communications to the remote component. It is difficult for a client/server application to function robustly if it does not implement some of the basic communications protocol functions needed to deal with the intermittent connections of the wireless network.
Dynamic IP Addressing
The Internet is a marvelous communications network in that generally any node on the Internet can connect to and communicate with any other node on the Internet, anywhere in the world. There is only one, unified address space for all Internet connected devices around the globe. All the initiating node needs to know is the IP address of the destination node in order to connect to it, and there is a worldwide network of directory servers to help initiators find the route to their destination node addresses.
Most mobile devices are assigned an IP address by the carrier for them to use for communicating over the Internet. Because the cellular industry paradigm is that mobile devices are subscriber devices and the subscriber initiates all communications, and because the cellular industry has needed to ration the IP address ranges that they have been allocated, the IP addresses are assigned temporarily or “dynamically” whenever the mobile device needs to communicate. When the mobile device is not actively communicating across an established session, then its temporarily assigned address is recovered and reused by the cellular network. Most of the time, a mobile device does not have an address assigned, and it can not be reached by a server application, even when the device is within cellular coverage.
Many cellular carriers do provide an option to assign a permanent, full-time IP address to a mobile device, which is called a “static” IP address. An external or server-based application can initiate a communications session with such a mobile device at any time, as long as it is within cellular coverage. The number of IP addresses available to carriers is still limited, however, and they charge extra for static IP addresses – sometimes significantly more.
Over cellular networks, applications can also always initiate communications with a mobile device using the Short Messaging Service (SMS) used for text messages, but this facility is extremely payload limited and entirely out-of-band from the familiar TCP/IP communications service.
A number of remote monitoring and control applications are architected under the assumption that the server is the “master” in the operation of the system, and that the central application controls communication to and from remote devices. This architecture is incompatible with a standard cellular service with dynamically assigned IP addresses for the mobile devices. Wireless applications need to be structured so that the mobile device initiates communications, either on schedule or on event. Even configuration commands and software updates for a device need to be held by a server application in a pending state until the target mobile device initiates a communications session with the server. Or the system needs to be designed so that server applications can send an SMS message to a mobile device to request it to initiate such a TCP/IP session on demand (the so-called “shoulder tap” method to get the mobile device’s attention).
Addressing Complexity
As stated previously, the Internet provides a wonderful facility of a single, unified address space that any Internet-connected node can use to communicate with any other Internet-connected node. Whether using IPv4 or IPv6, there is a one-to-one match between any physical device and its Internet address. Beneath its virtual IP address, every device also has a unique MAC address that is burned into its communications hardware, to further guarantee the unique identity of each connected physical device. The Internet infrastructure takes care of associating the virtual IP address with the physical MAC address. Everything is simple and harmonized.
In the cellular world, it really isn’t quite so simple. The cellular networks “support” IP-based communications, but they do not use IP addressing as the actual basis for communication like the Internet does (at least, not until true 4G networks become the predominant cellular network). IP addressing is actually overlaid on an entirely different cellular-based addressing universe. Rather than a MAC address, a cellular device has an International Mobile Equipment Identifier (IMEI). Devices that operate on GSM technology networks also require a separate Subscriber Identity Module (SIM), which in turn has its own unique International Mobile Subscriber Identity (IMSI) number. On top of these hard-coded physical addresses, cellular devices also have their own virtual address that is used for authentication and routing, the Mobile Subscriber Integrated Services Digital Network (MSISDN) number.
Mobile applications only need to use the virtual addressing of the Internet, the IP address, for mobile devices and central, server-based applications to communicate. However, most device and network management functions associated with the application will need to use cellular-specific addressing. Adding a new device to the application requires provisioning instructions to the cellular network, which can only be performed using the native addressing of the wireless industry. Similarly, most communication diagnostics must use cellular addressing rather than Internet addressing. Developing and deploying an application that communicates over the cellular wireless network will require use of the separate and extended addressing native to the wireless industry.
Multiple Carriers and Roaming
As stated earlier, the Internet is a marvelous communications network because any node on the Internet can connect to and communicate with any other node on the Internet, anywhere in the world. This communication is not dependent on knowing or dealing with the Internet Service Provider (ISP) of the other node. A node that connects to the Internet only needs to have commercial relationship with its own ISP. Once it has done so, the node can communicate with any other node that is obtaining service from any other ISP, because all ISPs provide reciprocal services and access to each other. An application on one node only needs to know the IP address of another node in order to communicate with it.
Once again, things are not so straightforward and simple with cellular wireless communications. Communicating with a mobile device is only “seemless” like the Internet if the device stays within the coverage area of the wireless carrier on whom the device is activated. But carrier licenses are limited to a single country, and no one carrier covers all of the geographic area in any particular country (especially the United States). In order to provide nearly ubiquitous service to subscribers, cellular carriers provide a form of reciprocal service to each other termed “roaming,” in which a device that has a commercial relationship with one carrier (the “home” carrier)  is allowed to operate on the network of another carrier (the “serving” carrier). The catch is that cellular carriers charge roaming fees for this reciprocal service privilege, and often these roaming are significantly higher than the normal usage-based charges imposed by the home carrier. Roaming enables a wireless application to be deployed using devices almost anywhere in the world, but there is a significant cost for that coverage, simplicity and flexibility.
Designing and deploying an application that communicates with devices in multiple countries always involves some complexity. When communicating over the wireline Internet, devices usually piggy-back on existing Internet connections, essentially for free. If that is not possible, local Internet service has to be established with an ISP that serves that market. Using the inter-carrier roaming relationships available with wireless applications can greatly simplify the worldwide deployment of an application. But the usually steep nature of roaming charges places an even greater incentive to design the application to minimize usage-based charges. Good design principles for wireless applications are more imperative when devices are expected to operate across national and even carrier boundaries.
Summary
Software engineers use a set of architectural and design principles to develop successful multi-node, client/server applications. Designing an application that is going to communicate over a wireless network, instead of a wireline one, adds a significant new set of considerations and constraints that the engineer must take into account. Developing a successful wireless application can not succeed just with “tweaks” or small modifications to traditional design practices. The entire application architecture must usually be rethought to produce an effective, commercially viable application.

Friday, November 9, 2007

Moving To Condition-Based Maintenance (CBM)

The Evolution of Maintenance

One of the major tenants of Reliability Centered Maintenance (RCM) is that enterprises should apply maintenance strategies to assets depending on the asset’s importance to the enterprise’s mission and its inherent reliability. Maintenance strategies have evolved over time as organizations have sought to assure high asset reliability and availability with a reasonable maintenance investment. A major challenge for any maintenance organization is to apply the appropriate maintenance strategy to each individual asset so that the organization’s overall goals and objectives can be attained at minimal cost.

First -- “Run-to-failure”. The most basic maintenance strategy available is “run to failure” in which an asset is operated until it fails or breaks. Then it is repaired with reactive or corrective maintenance which may involve repair or replacement. This is still an appropriate maintenance strategy for many non-critical assets.

Second -- “Preventive”. However, some asset failures have expensive and far-reaching consequences. These failures can shut down entire production lines, make buildings unusable, or even cause injuries or fatalities. Organizations place an imperative on avoiding these types of failures. Thus, a different maintenance strategy evolved to accomplish the objective of avoiding asset failures – preventive maintenance. The idea of preventive maintenance is look at the failure history of an asset, and to conduct maintenance to “fix” it before there is a meaningful probability of its failing in the first place. In this manner, a preventive maintenance strategy prevents an asset from failing.

Because the preventive maintenance program for each asset is different and all preventive maintenance needs to be performed on an exact schedule to be effective, Computerized Maintenance Management Systems (CMMS) were developed to help manage this complexity. Preventive maintenance is a core activity of many maintenance organizations today, and it does keep assets operating reliability and performing well.

Preventive maintenance works because it delivers high asset availability and minimizes unscheduled downtime. For those assets critical to operations, preventive maintenance avoids the severe consequences that asset failure can cause.

Unfortunately, the benefits of preventive maintenance come at a price. By its very nature, preventive maintenance means that maintenance is being performed more often than is necessary. Since maintenance consumes both labor and parts, this strategy has a measureable cost of “over-maintenance.” Additionally, preventive maintenance often requires that assets be taken off-line during servicing, incurring a cost to the organization for this downtime and lost capacity. Finally, more frequent maintenance involves more frequent intrusions into the equipment, which itself increases the chance of asset or system failures.

Finally, “Condition-based Maintenance”. Because preventive maintenance is expensive, and because enterprises are increasingly pressured to reduce their costs, organizations are developing a new type of maintenance strategy. Under this strategy, the condition of the asset is monitored regularly until it begins to give evidence of deteriorating performance or incipient failure. Maintenance is then performed “just-in-time” to prevent asset failure.
The promise of this new strategy – predictive maintenance or condition-based maintenance – is that the overall costs of maintenance can be reduced while providing the high asset availability and performance that preventive maintenance delivers. The current wave of innovation in asset maintenance today is developing predictive or condition-based maintenance strategies.


Condition-Based Maintenance Is Growing

Condition-based or predictive maintenance can help lower maintenance costs even compared to a sophisticated preventive maintenance approach. Condition-based maintenance uses real-time information on asset conditions to identify when maintenance is necessary, allowing maintenance to be deferred until needed. Savings comes not just from consuming less labor and parts in maintenance, but also from incurring less downtime and creating less frequent infant mortality.

There is an important but poorly defined difference between predictive maintenance and condition-based maintenance. Predictive maintenance is generally triggered by analysis of equipment condition data that is gathered periodically and manually. Most equipment vibration analysis and lubrication analysis, for example, is conducted on a scheduled basis to identify deteriorating conditions that require maintenance. This contrasts with condition-based maintenance in which equipment condition data is collected continuously and analyzed in real-time. Condition-based maintenance is still a relatively new approach, but is used more frequently on critical equipment in process industries such as refineries and power plants.

There are a number of factors that have limited the adoption of condition-based maintenance besides the fact that it is a relatively new strategy. Most of the equipment that could be subject to condition-based maintenance is not currently instrumented. Data on equipment condition cannot be collected without installing sensors on the equipment along with a means of collecting the sensor data. Even when equipment is properly instrumented to track operating parameters that could identify incipient failure, the sensors are not connected into a data collection network that allows real-time monitoring. These instruments or sensors usually provide local displays or store readings in data loggers, and data is collected from them by technicians that visit the equipment periodically. Such manual data collection is expensive, subject to error, and not always timely.

Even when equipment is instrumented and connected to a central monitoring point, this is often not sufficient for adopting condition-based maintenance. Usually equipment is monitored in this manner as part of a production, process or building control system. These automation systems track equipment and process parameters that are needed to monitor and control the equipment. These parameters are usually not the ones that monitor potential equipment failure modes and that identify a need for maintenance. For a pump driven by an electric motor, for instance, an automation system will usually track flow rates, upstream and downstream pressures, and motor RPMs. Condition-based maintenance would instead require monitoring bearing temperatures, vibration signatures, and motor current draw. Most automation systems do not track the necessary parameters for implementing condition-based maintenance.


Enabling Condition-Based Maintenance

The prospects for condition-based maintenance are improving rapidly, however. Condition-based maintenance is being enabled by several advances, but especially by advances in networking technology. Many business processes and employees have become much more productive and efficient over the last decade as they have become connected to information resources and each other by the spread of the Internet and related networking technologies. While people have become connected, machines and other assets have not yet been brought into networks.

But that is changing as the pervasive Internet is branching out to connect a wide range of equipment and devices. Because the cost of retrofitting wire to connect these devices is prohibitively expensive, wireless technologies are the growing method for making these connections. In particular, wireless sensor networks are a new technology that is connecting machines and other devices in a broad range of applications. This phenomenon is becoming a significant enabler of condition-based maintenance.


Wireless sensor networking is a relatively new technology that is designed to connect machines through the Internet the same way that WiFi has been broadly adopted to connect laptops and other computing devices. Aleier’s sister company, Cirronet, makes a wide range of wireless sensor networking equipment that differs in communication range, sensor connections, battery life and prices to address the requirements of many applications. This capability is becoming more broadly available as Cirronet and the other companies that provide wireless sensor networking solutions continue to refine and reduce the costs of their products.


Implementing Condition-Based Maintenance


Computerized Maintenance Management Systems, or CMMS’s, are the well-established application tool that has been used to plan and manage the maintenance function in organizations of all sizes. Over the past decade, Enterprise Asset Management (EAM) systems have been built on this maintenance foundation to help organizations manage all of the operational activities of managing assets over their complete life cycle, from their design, procurement and commissioning all the way through their retirement and disposal.


Enterprise Asset Management applications deliver a number of benefits to an organization when they are fully utilized. Of course, they help lower maintenance costs by making maintenance personnel and the parts inventory more productive. But they also help enterprises to improve the availability and performance of those assets, and to better achieve the primary mission those assets are intended to perform.


An Enterprise Asset Management application also helps reduce the need for asset investment in the long run. One of the ways that an EAM helps minimize long-term asset investment and improve maintenance productivity is by enabling enterprises to implement the correct maintenance strategy for each asset. The EAM system assists organizations in deciding which assets deserve the investment in condition-based maintenance; require the attention of preventive maintenance, and those that should be operated as “run to failure.” The EAM then implements and manages the appropriate strategy for each asset, including condition-based maintenance.


The Aleier FM1j Enterprise Asset Management application includes condition-based maintenance capabilities. FM1j collects and stores equipment condition data, regardless of how that data is captured. The system then analyzes the data as it is received, using an appropriate predictive algorithm or rule, to identify when the equipment requires maintenance. Finally FM1j creates an appropriate response, which usually means creating a workorder to perform the desired maintenance activity on the equipment.


A rule, or a set of rules, defines the triggers that determine a need for condition-based maintenance. Rules can be simple or complex, depending on the failure modes of the equipment. They can include exceeding a threshold value, exceeding that threshold for an extended time, exhibiting an excessive rate of change in a reading, reaching an excessive difference between the readings of two sensors, and so on. FM1j also allows a range of responses to be pre-defined, including sending alerts or automatically turning off equipment in addition to generating a traditional maintenance workorder. Aleier’s EAM has a rich set of capabilities to help organizations implement condition-based maintenance strategies across a broad spectrum of equipment.


The Future of Asset Management

Enterprises now have more options to assure the availability and continued performance of their assets while minimizing the costs to keep them in service. These organizations can choose the appropriate maintenance strategy for each asset, depending on how critical it is to operations, how frequently it fails, and its ability to be automatically and continuously monitored. New technologies are enabling enterprises to improve the management of their assets, including the ability to employ condition-based maintenance on more of their equipment. New technologies are a primary enabler of condition-based maintenance, which is the latest major innovation in the area of asset management.

Thursday, May 10, 2007

M2M Magazine 20 Questions on Sensor Networking

For a special supplement in the summer of 2007, M2M Magazine posed to suppliers the most commonly asked questions about sensor networking. Below are their 20 questions about selecting and deploying sensor-network technology, together with my responses.

You can download the M2M Magazine, with their official summarized answers to the 20 questions, at www.specialtypub.com/m2m/sensors/ (after registering).

-----

PART 1: BUSINESS QUESTIONS

1. Bottomline
Are sensor networks beyond their experimental phase and does the technology really work?
Wireless sensor networks do accomplish their goal of providing low cost telemetry data connections in situations where several points within an area need to be connected. They work. But they are wireless technologies, and like cellular phones and wireless LANs, they do not provide connectivity anywhere and everywhere all the time. Just as people have learned how to deal with the nuances of wireless propagation with cellular and LANs, so they will learn how to work with the coverage capabilities of wireless sensor networks.

2. Cost
What determines the total cost of a typical sensor-network deployment?
Actually, with wireless sensor networking, the costs of the radios and modules have gotten so low that the wireless technology is no longer the major cost driver in practical deployments. The other major costs in deployment are of the sensors and sensor technology, the packaging and connectors, and the labor costs of deployment and installation. When retrofitting installations in existing environments, the overall wireless solution cost is still substantially lower than the cost of retrofitting wiring in most applications.

3. Time
What usually determines the amount of time required to deploy a sensor network?
Deploying, commissioning and tuning a wireless sensor network does take a greater level of effort and a higher level of expertise today than is desirable. Some of this effort is in the planning and preparation phase, in choosing the appropriate wireless networking technology and the appropriate topology for the application, which differ widely in the density of desired connection points and the RF propagation environment. Even with planning, most wireless sensor network applications require some tuning activity after initial deployment, to adjust routing logic, router placement, etc., to get the network to perform its best.

4. Scalability
How much does the cost and complexity of a sensor network increase with the number of nodes?
The systems solutions to very large wireless sensor network deployments are still evolving. It appears that using a single uniform mesh networking topology for very large deployments may be impractical for most applications. But there are many other system solutions for these situations, including segmenting the coverage area into multiple independent networks, using different tiers of wireless sensor networking technology for end node and routing connections, and using different technologies altogether, like 802.11, for backbone configurations. RFM/Cirronet has employed all of these approaches in large network deployments, depending on the application’s requirements.

5. Management
What is required to manage a sensor network on a daily basis?
A properly designed and deployed wireless sensor network does not need to be “managed” on a daily basis. It does need to be monitored, however. It should monitor itself and only report the exception conditions that indicate problems.

6. Troubleshooting
Who is typically responsible for fixing problems with a sensor network after deployment?
Once a network is deployed and configured, there are two major types of problems that need to be fixed with wireless sensor networks. One type is relatively simple operational problems, like broken nodes, low batteries or loss of power, etc. These can be repaired by a local technician with a modest amount of training. The other type of problem is more complicated – fundamental changes in the RF environment (e.g., interference, obstructions) and changes in the application influencing network traffic load (e.g., more frequent problems to report, increased monitoring of some nodes). These problems require more experienced and sophisticated analysis to identify and resolve, and today this usually requires the supplier’s field application engineer to be involved.

7. Interface
How is sensor data usually presented to the end user?
Wireless sensor networks are usually agnostic about how the data is presented once it moves off the network. Typically today, the data either goes into a specialized application, or it is incorporated into an existing enterprise application such as an industrial automation system or an asset management system. Exiting applications already have an approach for presenting data from a wide variety of sources, including from sensor networks. Over time, the trend is to present less “data” to end users, but rather to turn that data into information, which is instead presented to end users. Existing enterprise applications perform this function and will increasingly be the destination for data from wireless sensor networks.

8. Integration
How can companies integrate sensor data with other business systems?
In general, wireless sensor networks provide data in binary formats identified by device level network addresses and with a limited amount of pre-processing or conditioning. Only industrial automation systems can accept data in this way and make sense of it. Most business systems require data to be provided in pre-processed formats with virtual identifiers to link to existing databases. At present there is significant architectural competition over where sensor data should be converted to make it usable to most business systems – by the sensor network itself, by the business systems themselves, or in independent gateway devices. Wherever this conversion is going to occur, it will need to be built since it does not currently exist in any of these alternative locations.

9. Duration
How should adopters approach a temporary installation compared to a permanent one?
In general, there is not much difference in what is required to get a temporary installation to work compared to a permanent one. A temporary installation may have less demanding packaging requirements, or not require the capability for battery replacement in the field.

10. ROI
What are the best ways to measure return-on-investment for a sensor network?
The return on investment for a wireless sensor network is driven by the value of the information that it enables to be connected. Consequently, the return on investment is driven by the overall benefits of the application. The information either helps improve overall business productivity, improves the quality of business operations in a meaningful way, or reduces operating costs, or some combination of these benefits. These benefits have to significantly exceed the cost of developing and deploying the application, of which the wireless sensor networking technology is just a component.

-----

PART 2: TECHNOLOGY QUESTIONS

1. Resources
What level of technical skill is required to set up and maintain a sensor network?
Today, setting up a wireless sensor network requires a high degree of expertise, relative to what generally exists in most user IT or operations departments. Over time, suppliers will automate the network setup process more, and will provide better tools to perform the functions that cannot be automated. And over time, end users will become more familiar with the technology and more experienced in deploying it. This is exactly what happened over time with Ethernet and with wireless LANs, and history will repeat itself with wireless sensor networks.

2. Setup
How is a sensor network installed and activated?
Installing a wireless sensor network is somewhat of an art, and somewhat of a trial and error process because radio propagation is indeterminate inside the structures where most of these networks are deployed. Some basic steps for installing a sensor network are:
1. Identify the locations where the end nodes need to be deployed to attach to the remote sensors or equipment. Doing this on a floor plan is essential.
2. Identify the probable locations where routing nodes need to be deployed, if the end nodes do not route or if the density and topology of the end nodes are not sufficient to establish a mesh.
3. Select a location for the base station or master node, which will usually need to be at a location that can be attached to a computer or communications network.
4. Install, activate and bind nodes to the network, one by one. Start with the nodes closest to the base station, and assure they have communication with the base station. Then install, activate and bind the next furthest nodes away from the base station, and assure that they have communication with previously installed nodes (preferably more than one). Continue installing outward from the base station until all nodes are operating and actively communicating within the network.
5. Tune the network. Make sure every node has multiple potential paths of communication, and install additional routers if necessary. If high node density is causing congestion and latency, turn off routing capabilities in some of the nodes in the congestion area.


3. Logistics
What are the range limits and physical limitations of a sensor network?
A wireless sensor network is fundamentally a radio network, and its operation is subject to the same laws of physics that govern all radio communications. As such, the maximum range between a transmitter and receiver is the power of the transmitter and the sensitivity of the receiver. For wireless sensor networks, transmitter power is ultimately limited by the regulations for unlicensed radios. More practically, transmitter power tends to be limited by cost concerns (more powerful transmitters cost more) and battery life concerns. Receiver sensitivity is fundamentally a function of the radio design, but there is limited variation in this factor among single chip, integrated circuit radios that are used in sensor networks.

Limitations on the range between nodes in wireless sensor networks are also caused by signal obstructions, interfering emitters and self-interference (i.e., multipath interference) in the environment around the transmitter and receiver. Typically, the maximum range between nodes within a structure will be 1/3 to ¼ of the normal free space, line-of-sight range between nodes.


4. Power
What should an adopter understand about power requirements and battery life?
Battery life trades off against some important system design parameters. Using a node for routing, so that it’s receiver must be active continuously or most of the time, will significantly degrade battery life. Establishing a network topology with long distances between nodes, so that higher powered radios are required, will degrade battery life. Using a transmitter to send messages frequently, and to send them at high data rates, will also tend to degrade battery life. The maximum battery life is achieved when the node “sleeps” most of the time, does not route messages for other nodes, and only transmits data infrequently (preferably alerts, alarms or exception messages).

5. Security
How can an adopter make sure its sensor-network data is secure?
Data security within a wireless sensor network is achieved by investing in additional node cost and complexity to add encryption. Faced with this trade-off, most users quickly realize that encrypting a temperature reading that is sent once every 15 minutes is not worth the investment and management complexity required. Very few of the individual sensor data points considered for wireless communication are that valuable or sensitive in themselves. Users with such sensitive data will usually choose wired connections, as they have in the past.

6. Reliability
What steps should an adopter take to ensure reliability of the network?
Wireless sensor networks are inherently more reliable, if deployed correctly so that a mesh topology is achieved among the nodes. Most real-world applications do not require a high density of end nodes mounted at monitored devices, relative to the useful communications range of the nodes, so higher reliability is usually achieved by installing a higher density of routing nodes.

7. Infrastructure
How can a company leverage its existing network infrastructure when deploying a sensor network?
Wireless sensor networks should only provide the last hundred feet of connection to sensors or instrumented devices. These networks should always be designed to connect to the organization’s existing network infrastructure as directly as possible, whether that network is a wireless LAN, a wired Ethernet, or a wired fieldbus network. These networks will usually already provide a connection to the target application for the data.

8. Hardware
What criteria should adopters use for selecting a hardware platform?
A wireless sensor network is a system consisting of radio platform (hardware) and the networking logic and protocol that controls the radio (hardware). Adopters can only select systems, not hardware platforms or software protocols independently.

Having said that, the most important consideration that an adopter should use to select a wireless sensor network system is to meet the needs of the application. Applications differ greatly on several important dimensions – amount and frequency of data to be communicated, number of end nodes in the network, average and maximum range between nodes, use of mains or battery power, static or changeable/mobile nodes, and RF environment (e.g., obstructions, interference). And wireless sensor network platforms also differ widely in their capabilities and performance. The adopter must identify the wireless sensor networks that can adequately serve the needs of the application. Alternatives are irrelevant is they don’t work.

The next most important consideration is the cost of the system solution. This includes not just the cost of the platform itself, but the cost of installation, integration with the rest of the application, impact on sensor cost, and similar system considerations. Another important criterion should be the support of the platform provider, because most first time adopters will be heavily reliant on that support.


9. Intelligence
When should a sensor network have distributed processing capability?
All networks, not just wireless sensor networks, should have distributed processing capability. Always. The overall trend in communications is for intelligence to be driven to the edge of the network, usually to improve the robustness of the overall application and to make more efficient use of shared communications bandwidth. As the costs of distributed processing resources (i.e., processing, memory) continue to plummet, this trend will also extend to wireless sensor networks to achieve the same architectural benefits.

10 (a). Standards
What should adopters understand about the standards associated with sensor networking?
Adopters should understand that there are still not any really effective standards for wireless sensor networks for most applications (see 10(c) below).

10 (b). More Standards
Which proprietary protocols should adopters avoid?
The best wireless sensor networking protocol for an adopter should be the one that best fits the requirements of the adopter’s application, whether it is a “standard” or proprietary. None of the “standard” protocols in this field, real or imagined, can best serve all potential uses of wireless sensor networking. Adopters should avoid wireless sensor network protocols that do not fulfill their application’s requirements. When trying to solve any specific connectivity application, standard protocols are not inherently good and proprietary protocols are not inherently bad. Their value is entirely dependent on their ability to solve any specific set of application needs.

10 (c). More Standards
What standards should be added to or removed from this list?

- 6lowpan - This “standard” is currently in the “imagining” stage and is not available in a commercial product.
- HART - The Wireless HART version of this “standard” is currently in the “imagining” stage and is not available in a commercial product.
- IEEE 802.15.4 – This is a standard – of a point-to-point radio platform. This standard does not provide mesh networking, and therefore does not qualify as a wireless sensor network.
- SP-100 - This “standard” is currently in the “imagining” stage and is not available in a commercial product.
- TinyOS – This is not a standard, but an open source reference platform that several suppliers have started with and adapted to create a proprietary wireless sensor network. No two suppliers’ TinyOS implementations can interoperate.
- Wibree – I have never heard of this “standard,” and I am active in the industry. I suspect it is still in the imagination stage.
- ZigBee - This is a real standard and is currently available in commercial products. But this standard does not provide the vendor interoperability and vendor substitutability that users expect from a standard. It requires network profiles and application profiles, which are very application specific and are still largely undefined in the standard. For most applications, users are resorting to proprietary profiles, and therefore their ZigBee implementations have all the characteristics of a proprietary protocol.
- Z-Wave – This is the proprietary wireless sensor networking protocol of Zensys, and it has been designed to function very well in home automation applications. A large number of device manufacturers buy this technology from Zensys, so it appears to the casual observer as if it is broadly adopted. But it is no more a standard than the Windows operating system is a standard.