The Anatomy of Latency

Latency is a measure of the time delay experienced in a system. In data communications, latency would be measured as the round-trip delay between sending a packet and receiving response from the destination. In the world of web applications latency is the response time of a web site. In web applications latency is dependent on both the round trip time on the communication link and also the processing time of the application, Hence we could say that

latency = 2 * round trip time  + Processing time

The round trip time is probably less susceptible to increasing traffic than the processing time taken for handling the increased loads. The processing time of the application is particularly pernicious in that it susceptible to changing traffic. This article tries to analyze why the latency or response times of web applications typically increase with increasing traffic. While the latency increases exponentially as the traffic increases the throughput increases to a point and then finally starts to drop substantially.  The ideal situation for all internet applications is to have the ability to scale horizontally allowing the application to handle increasing traffic by simply adding more commodity servers to the application while maintaining the response times to acceptable limits. However in the real world this never happens.

The price of Latency

Latency hurts business. Amazon found out that every 100 ms of latency cost them 1% of sales.  Similarly Google realized that a 0.5 second increase in search results dropped the search traffic by 20%. Latency really matters.    Reactions to bad response times in web sites range from minor annoyance to complete frustration and loss of users and business.

The cause of processing latency

One of the fundamental requirements of scalable systems is that they should be loosely coupled. The application needs to have a modular architecture with well defined interfaces with the other modules.  Ideally, applications which have been designed with fairly efficient processing times of the order of O(logn) or O(nlogn)  will be immune to changing loads but will be impacted by changes in number of data elements  So the algorithms adopted by the applications themselves do not contribute the increasing response times for increase traffic. So finally what really is the performance bottleneck for increasing latencies and decreasing throughput for increased loads?

Contention- the culprit

One of the culprits behind the deteriorating response is the thread locking and resource contention. Assuming that application has been designed with Reader-Writer locks or message queue based synchronization mechanism then the time spent in waiting for resources to become free, while traffic increases, will result in the degraded performance.

Let us assume that the application is read-heavy, write-light and has implemented Reader-Writer synchronization mechanism. Further let us assume that a write-thread locks a resource for 250 ms.  At low loads we could have 4 such threads each locking the resource for 250 ms for a total span of 1s.  Hence in 1s there can be a maximum of 4 threads each of which has executed a write lock for 250 ms for a total of 1s. In this interval all reader threads will be forced to wait. When the traffic load is low the number of reader threads waiting for the lock to be released will be low and will not have much impact but as the traffic increases the number of threads that are waiting for the lock to be released will be increase. Since a write lock takes a finite amount of time to complete processing we cannot go over the 4 write threads in 1 second with the given CPU speed.

However as the traffic further increases the number of waiting threads not only increases but also consume CPU and memory. Now this adversely impacts the writer threads which find that they have lesser CPU cycles and less memory and hence take longer times to complete. This downward cycle worsens and hence results in an increase in the response time and a worsening throughput in the application.

The solution to this problem is not easy. We need to revisit the areas where the application blocks waiting for something. Locking besides causing threads to wait also adds the overhead of getting scheduled prior to being able to execute again. We need to minimize the time a thread holds a resource before allowing others threads access to it.

Find me on Google+

The Business of Cloud Computing

Cloud Computing is the spanking new paradigm in the world of computing. The key differentiator in this technology is that the enterprise only pays for the amount of resources used – be it CPUs, memory or databases. While it does away with Capital Expenditure for organizations by providing a utility model of pricing it results in recurring Operating Expenses for the organization. However the important thing is that the cloud grows and shrinks according to demand and hence the cost to the organization is dependent on the traffic it generates. While web based applications are prime candidates for the cloud other equally eligible candidates are batch processing jobs, nightly builds or CPU intensive analytics. Except for the case of web application, for other types of applications, a reasonable estimate can be made on the resources needed and appropriate choice be made on the cloud.

This article looks at web applications where the traffic on the site can be seasonal and can vary during periods of the day. Besides web sites should be capable of handling bursty traffic with enormous loads at particular intervals.

The important consideration for web sites is to ensure that the application is truly optimized and exhibits the property of scaling horizontally. While it appears that scaling out will occur for any reasonably designed application the issue is that as the number of hits increase on the web site the response time increases steeply but the number of transactions per second plateaus at some particular load level and does not increase after that. It can be said that for a certain CPU instance configuration the peak transaction per second will reach a particular limit and cannot be increased any further. However the cloud also provides a key component namely the load balancer along with auto scaling which create a new instances when this threshold is reached.

What are the business considerations that need to be taken while designing for the cloud?

One needs to be conservative in choosing the instance type. While larger instances will provide a better performance they also cost more. Hence the instance type should be large enough and no larger. It would be wasteful of using extremely large instances where the last instance only uses a part of the total traffic while costing a lot more.

The analogy is that if 16 units if task have to be performed it is better to have a small CPU instance capable of handling 3 units of task requiring a total of 6 CPUs (6 * 3 = 18 > 16) rather than having a large CPU instance capable of handling 5 units of task requiring a total of 4 large CPUs (5 * 4= 20> 16). The second option would result in a waste processing power.

Assuming that the upfront cost to the organization for hosting the website in-house is ‘P’ and the cost amortized over a period of 1 years is ‘p’ per hour. Further if the instance cost is ‘c’ and ‘n’ is number of instances needed to support the projected demand and the revenue to the organization hosting the website is ‘r’ per 1000 hits then a cloud deployment will make business sense when

(rh– n * ch) – ph > 0 where h is the hour

As long as the right hand side is positive the organization will profit. However as the traffic increases and the throughput of website plateaus the enterprise will hit a ‘window of diminishing returns’.

However if the performance of the application is poor and the number of instances needed to support the traffic is disproportionately large then the above equation will be negative and will result in loss to the organization.

(rh – n * ch) – ph < 0

Hence deployment to the cloud besides requiring a strong technical background also needs a sound business sense in order to reap the benefits of the cloud.

Find me on Google+

Designing for Cloud Worthiness

Cloud Computing is changing the rules of computing to the enterprise. Enterprises are no longer constrained by capital costs of upfront equipment purchase. Rather they can concentrate on the application and deploy it on the cloud and pay in a utility style based on usage. Cloud computing essentially presents a virtualized platform on which applications can be deployed.

The Cloud exhibits the property of elasticity by automatically adding more resources to the application as demand grows and shrinking the resources when the demand drops. It is this property of elasticity of the cloud and the ability to pay based on actual usage that makes Cloud Computing so alluring.

However to take full advantage of the Cloud the application must use the available cloud resources judiciously.  It is important for applications that are to be deployed on the cloud to have the property of scaling horizontally.  What this implies is that the application should be able to handle more transactions per second when more resources are added to application. For example if the application has been designed to run in a small CPU instance of 1.7GHz,32 bit and 160 GB of instance storage with a throughput of 800 transactions per second then one should be able to add 4 such instances and scale to handling 4000 transactions per second.

However there is a catch in this. How does one determine what should be theoretical limit of transactions per second for a single instance?  Ideally we should maximize the throughput and minimize the latency for each instance prior to going to the next step of adding more instances on the cloud. One should squeeze the maximum performance from the application in the instance of choice prior to using multiple instances on the cloud. Typical applications perform reasonably well under small loads but as the traffic is increased the response time increases and the throughput also starts dipping.

There is a need to run some profiling tools and remove bottlenecks in the application. The standard refrain for applications to be deployed on the cloud is that they should be loosely coupled and also be stateless. However, most applications tend to be multi-threaded with resource sharing in various modules.  The performance of the application because of locks and semaphores should be given due consideration. Typically a lot of time wasted in the wait state of threads in the application. A suitable technique should be used for providing concurrency among threads. The application should be analyzed whether it read-heavy and write-light or write-heavy and read-light. Suitable synchronization techniques like reader-Writer, message queue based exclusion or monitors should be used.

I have found callgrind for profiling and gathering performance characteristics along with KCachegrind for providing a graphical display of performance times extremely useful.

Another important technique to improve performance is the need to maintain in-memory cache of frequently accessed data. Rather than making frequent queries to the database periodic updates from the database need to be made and stored in in-memory cache. However while this technique works fine with a single instance the question of how to handle in-memory caches for multiple instances in the cloud represents quite a challenge. In the cloud when there are multiple instances there is a need for a distributed cache which is  shared among multiple instances. Memcached is appropriate technique for maintaining a distributed cache in the cloud.

Once the application has been ironed out for maximum performance the application can be deployed on the cloud and stress tested for peak loads.

Some good tools that can be used for generating loads on the application are loadUI and multi-mechanize. Personally I prefer multi-mechanize as it uses test scripts that are based on Python which can be easily modified for the testing. One can simulate browser functionality to some extent with Python in multi-mechanize which can prove useful.

Hence while the cloud provides CPUs, memory and database resources on demand the enterprise needs to design applications such that the use of these resources are done judiciously. Otherwise the enterprise will not be able to reap the benefits of utility computing if it deploys inefficient applications that hog a lot of resources without appropriate revenue generating performance.

INWARDi Technologies

Optimal Cloud Computing

Published in CIOL as Cloud Computing: Windows of Performance , Jul 12,2011

Published in Data Quest as Cloud Computing: Cloud all the way,  Nov 16,2011

The murmur of cloud computing today, is bound to build up to crescendo in the years to come, simply because it makes a sound business sense. Cloud computing is a new paradigm in the world of computing. The cloud essentially creates an illusion of infinite computing resources that are available on demand to the user who only pays based on the usage. While on the surface it appears extremely simple and straightforward, making an optimal use of the cloud is no trivial task.

Prior to deploying on the cloud the enterprise has to decide the CPU, memory and bandwidth usage of the application. For e.g. the Amazon EC2 provides several variants of CPUs based on different pricing schemes namely $0.085/hr, $0.34/hr or $0.68/hr for small, large or extra large CPU instances. There are different pricing schemes for memory and bandwidth usage as well.

While the technological challenge of deploying the cloud is a separate endeavor in itself, the business considerations needed for deciding the cloud computing resources, optimally, is a separate and an equally important endeavor. This article focuses on the business considerations needed for making an optimal choice of resources while deploying on the cloud.

Since the enterprise is free to choose different CPUs which typically consists of CPU processors with different clock speeds or multi core CPUs for extra large instance the choice is really complicated.

The designer needs to consider how his application scales up with respect to increasing, decreasing or burst demands in traffic. To estimate the kind of resources that would be needed would require a good understanding of how the application scales with respect to increasing traffic. Ideally it will be remarkable if the application can scale linearly with increasing traffic. The key parameters that need to be considered for application performance is application latency and throughput versus the instance type.

Also another consideration is to choose is the kind of resources types that need to be added. Ideally it would make more sense to add small CPU instances which can be added incrementally rather than adding extra large CPU instances which only handle part of the traffic. If we choose the large instance which is only partially used but has to be instantiated, nevertheless, to handle the extra traffic then it could result it wasting of precious resources.

A prime consideration is the choice of CPU resource type and the need to understand how the CPU loads up with increasing traffic with respect to latency and throughput. Once the CPU type, small, medium, large or extra large is chosen the designer needs to monitor how the loading of the CPU resource performs with increasing traffic.
Hence regardless of the choice there will be 3 windows of performance to consider

 

ret1

 

Window of Optimality: In the optimal window the cost of cloud computing resources, for handling the incoming traffic versus revenue for the enterprise is truly profitable. In the optimal window the application will be capable of scaling extremely well to increasing traffic thus resulting in excellent revenue for the enterprise.

b) Window of Diminishing Returns: In this window the addition of extra resources at additional cost will not result in a proportional increase in scalability. In fact the increasing cost of adding additional resource will offset the revenue to the enterprise as the application will not scale appropriately and will result in diminishing returns.

c) Window of Loss: This is the window, in which no enterprise should not find itself in. In this window the cost of adding the extra resources will be larger than the revenue to the enterprise as an inordinate amount of resources will have to be added for small incremental increase in scalability. This will be the result of a poorly designed application. In this situation the enterprise must go back to the drawing room and re-architect the application.

Hence cloud computing, while truly alluring for the enterprise, it is a path that must be tread very carefully by the enterprise.

Find me on Google+

Scaling out

Web Applications have challenges that are unique to the domain of the web. The key differentiating fact between internet technologies and other technologies is the need to scale up to handle sudden and large increases in traffic. While telecommunication and data communication also have the need to handle high traffic these products can be dimensioned on some upper threshold. Typical web applications have the need to provide low latencies, handle large throughput and also be extremely scalable to changing demands.

The ability to scale seems trivial. It appears that one could just add more CPU horsepower and throw in memory and bandwidth in large measure to get the performance we need. But unfortunately this is not as simple as it appears. For one, adding more CPU horsepower may not necessarily result in better performance. A badly designed application will only improve marginally.

Some applications are “embarrassingly parallel”. There is no dependency of one task on another.  For example if the task is to search for a particular string in documents or one that requires the conversion from  AVI to MPEG format then this can be done in parallel. In a public cloud this could be achieved by running more instances.

However, most real world applications are more sequential than parallel. There is a lot of dependency of data between the modules of the application.  When multiple instances have to run  in a public cloud the design considerations can be quite daunting.

For example if we had an application with parts 1,2,3,4 as follows

Now let us further assume that this is a web application and thousands of requests come to it. For simplicity sake, if we assume that for each request there is counter that has to be incremented.  How does one keep track of the total requests that are coming to application?  The challenge is how to manage such a global counter when there are multiple instances.  In a monolithic application this does not pose a problem. But with multiple instances handling web requests, each having its own copy of this counter the design becomes a challenge

Each instance has its own copy of the counter which it will update based on the requests that come to that instance through a load balancer. However, how does one compute the total number of requests that e come to all the instances

One possible solution is to use the memcached approach.  Memcached was developed as solution by Danga Corporation for Livejournal.  Memcached is a distributed caching mechanism that stores data in multiple participating servers. Memcached has some simple API calls like get(key) and set (key,value) . Memcached uses a consistent hashing mechanism which hashes the key to one of the servers among several servers. This method is known as the Distributed Hashing Table (DHT) by which it is able to distribute the keys to one of the servers. The Consistent Hashing technique is able to handle server crashes and new servers joining in the distributed cache. Since data is distributed among servers participating in the distributed cache when a server crashes all its data is distributed to the remaining servers. Similarly a server joining in the distributed cache also distributes some of the data to it. Memcached has been used in Facebook, Zynga and Livejournal.

Find me on Google+

Cloud Computing – Design Considerations

Cloud Computing is definitely turning out to be the proverbial carrot for enterprises to host their applications on the public cloud. The cloud promises many benefits to users of the cloud. Cloud Computing obviates the need for upfront capital expenses for computing infrastructure, real estate and maintenance personnel. This technology allows for scaling up or scaling down as demand on the application fluctuates.

While the advantages are many, migrating application onto the cloud is no trivial task.  The cloud is essentially composed of commodity servers. The cloud creates multiple instances of the application and runs it on the same or on different servers. The benefit of executing in parallel is that the same task can be completed faster. The cloud offers enterprises the ability to quickly scale to handle increasing demands,

But the process of deploying applications on to the cloud requires that the application be re architected to take advantage of this parallelism that the cloud provides. But the ability to handle parallelization is no simple task. The key attributes that need to be handled by distributed systems is the need for consistency and availability. If there are variables that need to be shared across the parallel instances then the application must make special provisions to handle this and ensure consistency. Similarly the application must be designed to handle failures.

Applications that are intended to be deployed on the cloud must be designed to scale-out rather than having the ability to scale-up. Scaling up refers to the process of adding more horse power by way of faster CPUs, more RAM and faster throughput.  But applications that need to be deployed on the cloud need to have the ability to scale out or scale horizontally where more servers are added without any change in processing horsepower.  The design for horizontal scalability is the key to cloud computing architectures.

Some of the key principles to keep in mind while designing for the cloud is to ensure that the application is composed of loosely coupled processes preferably based on SOA principles.  While a multi-threaded architecture where resource sharing through mutexes works in monolithic applications such a architecture is of no help when there are multiple instances of the same application running on different servers. How does one maintain consistency of the shared resource across instances?  This is a tough problem to solve. Ideally the application should be thread safe and should be based on a shared – nothing kind of architecture. One such technique is to use queues that the cloud provides as a means of sharing across instances. However this may impact the performance of the system.  Other methods include using ‘memcached’ which has been used successfully by Facebook, Twitter, Livejournal, Zynga etc deployed on the cloud. Still another method is to use the Map-Reduce algorithm where the variables across instances are handled by ‘map’ and the ‘reduce’ part handles the consistency across instances.

Another key consideration is the need to support availability requirements. Since the cloud is made up of commodity hardware there is every possibility of servers failing.  The application must be designed with inbuilt resilience to handle such failures. This could by designing active-standby architecture or by providing for checkpointing so that application can restart from some known previous point.

Hence while cloud computing is the way to go in the future there is a need to be able to carefully design the application so that full advantage of the cloud can be taken.

Technology Trends – 2011 and beyond

There are lots of exciting things happening in the technological landscape. Innovation and development in every age is dependent on a set of key driving factors namely – the need for better, faster and cheaper, the need to handle disruptive technologies, the need to keep costs down and the need to absorb path breaking innovations. Given all these factors and the current trends in the industry the following technologies will enter mainstream in the years to come.

Long Term Evolution (LTE): LTE, also known as 4G technologies, has been born out of the disruptive entry of data hungry smart phones and tablet PCs. Besides, the need for better and faster applications has been the key driver of this technology. LTE is a data only technology that allows mobile users to access the internet on the move.  LTE uses OFDM technology for sending and receiving data from user devices and also uses MIMO (multiple-in, multiple out). LTE is more economical, and spectrally efficient when compared to earlier 3.5G technologies like HSDPA, HSUPA and HSPA. LTE promises a better Quality of Experience (QoE) for end users.

IP Multimedia Systems IMS): IMS has been around for a while. However with the many advances in IP technology and the transport of media the time is now ripe for this technology to take wings and soar high. IMS uses the ubiquitous internet protocol for its core network both for media transport and for SIP signaling. Many innovative applications are possible with IMS including high definition video conferencing, multi-player interactive games, white boarding etc.

All senior management personnel of organizations are constantly faced with the need to keep costs down. The next two technologies hold a lot of promise in reducing costs for organizations and will surely play a key role in the years to come.

Cloud Computing: Cloud Computing obviates the need for upfront capital and infrastructure costs of organizations. Enterprises can deploy their applications on a public cloud which provides virtually infinite computing capacity in the hands of organizations. Organizations only pay as much as they use akin to utilities like electricity or water

Analytics: These days’ organizations are faced with a virtual deluge of data from their day to day operations. Whether the organizations belong to retail, health, finance, telecom, or transportation there is a lot of data that is generated. Data by itself is useless. This is where data analytics plays an important role. Predictive analytics help in classifying data, determining key trends and identifying correlations between data. This helps organizations in making strategic business decisions.

The following two technologies listed below are really path breaking and their applications are limitless.

Internet of Things: This technology envisages either passive or intelligent devices connected to the internet with a database at the back end for processing the data collected from these intelligent devices. This is also known as M2M (machine to machine) technology. The applications range from monitoring the structural integrity of bridges to implantable devices monitoring fatal heart diseases of patients.

Semantic Web (Web 3.0): This is the next stage in the evolution of the World Wide Web. The Web is now a vast repository of ideas, thoughts, blogs, observations etc. This technology envisages intelligent agents that can analyze the information in the web. These agents will determine the relations between information and make intelligent inferences. This technology will have to use artificial intelligence techniques, data mining and cloud computing to plumb the depths of the web

Conclusion: Creativity and innovation has been the hallmark of mankind from time immemorial. With the demand for smarter, cheaper and better the above technologies are bound to endure in the years to come.

Find me on Google+

The Future of Telecom

Published in Voice & Data – Bright Future

Introduction: The close of the 20th century will long be remembered for one thing. The dotcom bust followed by the downward spiral of many major telecom and technology companies. For those who believe in the theory of the 12 year economic cycle this downturn is right about to end and we should see good times soon. Even otherwise there is good news for those in the telecom domain. We could shortly be witness to golden years ahead. There are many signs that seem to indicate that the telecom industry is on the verge of many major breakthroughs. Technologies like LTE, IMS, smartphones, cloud computing point to interesting times ahead. In fact telecom is at a inflexion point when the fortunes seem to be pointed northward. This article looks at some of the promising technologies which are going to bring back the sunshine to telecom.

3G Technologies –Better Quality of Experience (QoE): The auction of the 3G spectrum ended after 131 days of hectic bidding for this cutting edge telecom technology. 3G promises a whole new customer experience backed by extremely high data speeds. 3G promises download speed of up to 2 Mbps for stationary subscribers and 384 Kbps for moving subscribers. It is very clear that such high data speeds will inspire a host of new and exciting applications. Applications that span location based services (LBS), m-Commerce and NFC communications will be simply be irresistible to the users. Moreover the ability to watch video clips or live action on mobile TV or on laptops enabled with 3G dongles will have a lot of takers for 3G technology. App stores for 3G are bound to do a roaring business as 3G takes off in India.

Smartphones – The game changers: In the last decade or so in the telecom industry no other invention has had such a disruptive effect in the telecom domain as smartphones. Smartphones like the IPhone, Droid or Nexus One have changed the rules of the game. The impact of smartphone has been so huge that it actually spawned an entire industry of developers who developed applications for smartphones, content developers and app stores. The irresistible appeal of smartphones is the ease of use and the ability to browse the net as though they were using a normal data connection.  Users can watch youtube clips, play games or chat on the Smartphone.

IP Multimedia Systems (IMS) – Digital Convergence:  IP Multimedia System (IMS) , based on 3GPP’s Release 5 Specification in 2005, has been in the wings for quite some time. The IMS envisions an access agnostic telecommunication architecture that will use an all-IP Core for the transport of medium be it voice, data or video. IMS uses SIP protocol for signaling between network elements and SDP for exchanging media between applications.  The IMS architecture promises a whole slew of exciting application ranging from high quality video conference, high speed data access, white boarding or real time interactive gaining.  IMS represents a true convergence of the telecom wireless concepts with the data communication protocols. The types of services that are possible with IMS will be only limited by imagination. With the entry of smartphones and tablet PCs, IMS is a technology that is waiting to happen and will soon become prime time

Long Term Evolution (LTE)Blazing Speeds: Already there are upward of 5 billion mobile devices and a report from Cisco states that the total data navigating the net will exceed ½ a zettabyte (1021) by the year 2013. The exponential growth of data and the need to provide even higher Quality of Experience (QoE) led to the development of the LTE. LTE is considered 4G technology. LTE promises speeds anywhere between to 56 Mbps to 100 Mbps to users enabling unheard of speeds and applications.  What makes  LTE so attractive is that it promises better spectral efficiency and lower cost per bit than 3G networks. The competing technology for LTE is WIMAX which is also considered as 4G. But LTE has a better evolution path from 3G networks as opposed to WiMAX, While LTE is a packet only network there are sound strategies for handling voice traffic with LTE.  The standards body 3GPP offers two options for handling voice. The first is the Circuit switched (CS) fallback to 2G/3G network. In this scenario data access will be through the packet network of LTE while voice calls will use legacy 2G/3G voice networks. The other alternative is the switch voice traffic to the IMS network with its all-IP Core. This method is supported by the One Voice initiative of many major telecom companies and accepted by GSMA.  This strategy for handling voice through an IMS network is known as VoLTE (Voice over LTE)

Internet of Things- Towards a connected World:  “The Internet of Things” visualizes a highly interconnected world made of tiny passive or intelligent devices that connect to large databases and to the internet. This technology promises to transform the network from a dumb-bit pipe to a truly “computing” network. The Internet of Things or M2M (machine-to-machine) envisages an anytime, anywhere, anyone, anything network. The devices in this M2M network will be made up of passive elements, sensors and intelligent devices that communicate with the network. The devices will be capable of sensing, identifying and responding to changes in the immediate environment. Radio Frequency Identification (RFIDs) is one of the early and key enabler of this technology. The uses for this technology range from warning when the structural integrity of bridges is compromised to implantable devices in heart patients warning doctors of possible heart attacks.  The impact of the Internet of Things will be far-reaching. There are numerous applications for this technology. In fact, ubiquitous computing or the Internet of Things allows us to distribute processing power and intelligence throughout the network into a kind of ambient intelligence spread across the network. This technology promises to blur the lines between science fiction and reality.

App StoresThe final verdict:  The success of App Stores in the last couple of years has been nothing short of phenomenal. It is a complete ecosystem with App Store Developers, App Stores, and the Content Developers and Service Providers.  Apps and App stores have changed the rules of the game so completely. No longer is a mobile phone’s snazzy looks enough for it to be a best seller.  The mobile should be supported by cool downloadable apps for the user to use.  App Stores and apps will play an increasingly important role with apps being developed for smartphones and tablet PCs.  There are bound to be several interesting apps spanning technologies like   Location Based Service (LBS), mobile Commerce, eTicketing, Near Field Communication

Cloud Computing – Utility computing: Cloud Computing has been around some but is slowly gaining more and more prominence. Cloud computing follows a utility model for computing where the cloud user only pays for the computing power and storage capacity used. Cloud computing not involve any upfront Capacity expenditure (Capex).  Users of public clouds like EC2, App Engine or Azure can pay according to the usage of the resources provided by the cloud. Cloud technologies allow the CSPs to purchase processing power, platforms, and databases almost like a utility like electricity or water.  The cloud exhibits an elastic behavior and expands to accommodate increasing demands and contracts when the demand drops. Cloud computing will be slowly be adopted by more and more organizations and enterprises in the years to come.

AnalyticsMining intelligence from data:  Nowadays organizations all over are faced with a deluge of data.  For raw data to be useful it has been analyzed, classified and important patterns determined from the data. This is where data mining and analytics come into play. Analytics uses statistical methods to classify data, determine correlations, identify patterns, and highlight and detect key trends among large data sets. Analytics enables industries to plumb the data sets through the process of selecting, exploring and modeling large amount of data to uncover previously unknown data patterns. The insights which analytics provides can be channelized to business advantage. Data mining and predictive analytics unlock the hidden secrets of data and help businesses make strategic decisions. Analytics is bound to become more common and will play a predominant role in all organizations in the years to come.

Internet TVHot off the net:  If IMS represents the convergence of Telecom and the internet, Internet TV represents the marriage of TV and the internet. Internet TV is a technology whose time has come. Internet TV will bring a whole new user experience by allowing the viewer to be view rich content on his TV in an interactive manner. The technology titans like Apple, Microsoft and Google  have their own version of this technology. Internet TV combines TV, the internet and apps for this new technology.  Internet TV is bound to become popular with complementary technologies like IMS, LTE allowing for high speed data exchange and the popularity of websites like Youtube etc. Internet TV will receive a further boost from apps of smartphones and tablet PCs

IPv4 exhaustion – Damocles’ sword: While the future holds the promise of many new technologies it is also going throw a lot of attendant challenges. One serious problem that will need serious attention in the not too distant future is the IPv4 address space exhaustion.  This problem may be even more serious than the Y2K problem. The issue is that IPv4 can address only 2 32 or 4.3 billion devices. Already the pool has been exhausted because of new technologies like IMS which uses an all IP Core and the Internet of things with more devices, sensors connected to the internet – each identified by an IP address. The solution to this problem has been addressed long back and requires that the Internet adopt IPv6 addressing scheme. IPv6 uses 128-bit long address and allows 3.4 x 1038 or 340 trillion, trillion, trillion unique addresses. However the conversion to IPv6 is not happening at the required pace and pretty soon will have to be adopted on war footing. It is clear that while the transition takes place, both IPv4 and IPv6 will co-exist so there will be an additional requirement of devices on the internet to be able to convert from one to another

Conclusion:

Technologies like IMS, LTE, and Internet TV have a lot of potential and hold a lot of promise.  We as human beings have a constant need for better, faster and cheaper technologies. We can expect a lot of changes to happen in the next couple of years. We may once see rosy times ahead for telecom as a whole

<
Find me on Google+

The rise of analytics

Published in The Hindu – The rise of analytics

We are slowly, but surely, heading towards the age of “information overload”. The Sloan Digital Sky Survey started in the year 2000 returned around 620 terabytes of data in 11 months — more data than had ever been amassed in the entire history of astronomy.

The Large Hadron Collider (LHC) at CERN, Europe’s particle physics laboratory, in Geneva will during its search for the origins of the universe and the elusive Higgs particle, early next year, spew out terabytes of data in its wake. Now there are upward of five billion devices connected to the Internet and the numbers are showing no signs of slowing down.

A recent report from Cisco, the data networking giant, states that the total data navigating the Net will cross 1/2 a zettabyte (10 {+2} {+1}) by the year 2013.

Such astronomical volumes of data are also handled daily by retail giants including Walmart and Target and telcos such as AT&T and Airtel. Also, advances in the Human Genome Project and technologies like the “Internet of Things” are bound to throw up large quantities of data.

The issue of storing data is now slowly becoming non-existent with the plummeting prices of semi-conductor memory and processors coupled with a doubling of their capacity every 18 months with the inevitability predicted by Moore’s law.

Plumbing the depths

Raw data is by itself quite useless. Data has to be classified, winnowed and analysed into useful information before if it can be utilised. This is where analytics and data mining come into play. Analytics, once the exclusive preserve of research labs and academia, has now entered the mainstream. Data mining and analytics are now used across a broad swath of industries — retail, insurance, manufacturing, healthcare and telecommunication. Analytics enables the extraction of intelligence, identification of trends and the ability to highlight the non-obvious from raw, amorphous data. Using the intelligence that is gleaned from predictive analytics, businesses can make strategic game-changing decisions.

Analytics uses statistical methods to classify data, determine correlations, identify patterns, and highlight and detect deviations among large data sets. Analytics includes in its realms complex software algorithms such as decision trees and neural nets to make predictions from existing data sets. For e.g. a retail store would be interested in knowing the buying patterns of its consumers. If the store could determine that product Y is almost always purchased when product X is purchased then the store could come up with clever schemes like an additional discount on product Z when both products X & Y are purchased. Similarly, telcos could use analytics to identify predominant trends that promote customer loyalty.

Studying behaviour

Telcos could come with voice and data plans that attract customers based on consumer behaviour, after analysing data from its point of sale and retail stores. They could use analytics to determine causes for customer churn and come with strategies to prevent it.

Analytics has also been used in the health industry in predicting and preventing fatal infections in infants based on patterns in real-time data like blood pressure, heart rate and respiration.

Analytics requires at its disposal large processing power. Advances in this field have been largely fuelled by similar advances in a companion technology, namely cloud computing. The latter allows computing power to be purchased on demand almost like a utility and has been a key enabler for analytics.

Data mining and analytics allows industries to plumb the data sets that are held in the organisations through the process of selecting, exploring and modelling large amount of data to uncover previously unknown data patterns which can be channelised to business advantage.

Analytics help in unlocking the secrets hidden in data and provide real insights to businesses; and enable businesses and industries to make intelligent and informed choices.

In this age of information deluge, data mining and analytics are bound to play an increasingly important role and will become indispensable to the future of businesses.

Find me on Google+

Cloud, analytics key tools for today’s telcos

Published in Telecom Asia Aug 20, 2010 – http://bit.ly/dxKbsR

Operators facing dwindling revenue from wireline subscribers, fierce tariff wars and exploding mobile data traffic are continually being pressured to do more for less. Spending on infrastructure is increasing as they look to provide better service within slender budgets.
In these tough times telcos have to devise new and innovative strategies and make judicious technology choices. Two promising technologies, cloud computing and analytics, are shaping up as among the best choices to make.
Cloud architecture does away with the worry of planning the computing resources needed, the real estate, the costs of the acquiring them and thoughts of its obsolescence. It allows the CSPs to purchase processing power, platforms and databases almost as a utility like electricity or water.
Cloud consumers only pay for what they use. The magic of this promising technology is the elasticity that the cloud provides – it expands to accommodate increasing demands and contracts when the demand drops.
The cloud architectures of Amazon, Google and Microsoft – currently the three biggest cloud providers – vary widely in their capabilities and features. These strengths and weaknesses should be taken into account while planning a cloud system. Each is best suited for only a certain class of applications unique to each individual cloud provider.
On one end of the spectrum Amazon’s EC2 (Elastic Compute Cloud) provides a virtual machine and a wealth of associated tools for storage and notifications. But the trade-off for increased flexibility is that users must take responsibility for designing resiliency into their systems.
On the other end is Google’s App Engine, a highly scalable cloud architecture that handles failures but is a lot more restrictive. Microsoft’s Azure is based on the .NET architecture and in terms of flexibility and features lies between these two.
When implementing such architecture, an organization should take a long hard look its computing software inventory to decide which applications are worthy of migrating to the cloud. The best candidates are processing intensive in-house applications that deliver standardized functionality and interface, and whose software architecture is made up of loosely coupled communicating systems.
Applications that deal with sensitive data should be retained within the organization’s internal computing infrastructure, because security is currently the most glaring issue with the cloud. Cloud providers do provide various levels of security to users, but this is an area in keen need of standardization.
But if the CSP decides to build components of an OSS system – rather than buying a pre-packaged system – it makes good business sense to develop for the cloud.
A cloud-based application must have a few essential properties. First, it is preferable if the application was designed on SOA principles. Second, it should be loosely coupled. And lastly, it needs to be an application that can be scaled rapidly up or down based on the varying demands.
The other question is which legacy systems can be migrated. If the OSS/BSS systems are based on commercial off-the-shelf systems these can be excluded, but an offline bill processing system, for example, is typically a good candidate for migration.
Mining wisdom from data
The cloud can serve as the perfect companion for another increasingly vital operational practice – data analytics. The cloud is capable of modeling large amounts of data, and running models to process and analyze this data. It is possible to run thousands of simultaneous instances on the cloud and mine for business intelligence in the oceans of telecom data operators generate.
Today’s CSP maintains software systems generating all kinds of customer data, covering areas ranging from billing and order management to POS, VAS and provisioning. But perhaps the largest and richest vein of subscriber information is the call detail records database.
All this data is worthless, though, if it cannot be mined and analyzed. Formal data mining and data analytics tools can be used to identify patterns and trends that will allow operators to make strategic, knowledge-driven decisions.
Analytics involves many complex areas like predictive analytics, neural nets, decision trees and classification. Some of the approaches used in data analytics include prediction, deviation detection, degree of influence and classification.
With the intelligence that comes through analytics it is possible to determine customer buying patterns, identify causes for churn and develop strategies to promote loyalty. Call patterns based on demography or time of day will enable the CSPs to create innovative tariff schemes.
Determining the relations and buying patterns of users will provide opportunities for up-selling and cross-selling. The ability to identify marked deviation in customer behavior patterns help the CSP in deciding ahead of time whether this trend is a warning bell or an opportunity waiting to be tapped.
Tinniam V Ganesh

Find me on Google+