Wednesday, March 27, 2013

New Developments in IT



Cloud computing, a hosted software service provider, is allowing companies gain a competitive advantage over their competition by giving them resources that are less expensive and cut down development time.  Cloud computing, however, is not a good fit for every organization.  Companies who are considering using cloud computing need to look at the legal and technical ramifications of doing business with cloud computing.  This paper will explore the organizational, technical, and legal ramifications of integrating cloud computing into a business. 

New Developments in IT

Cloud Computing is a technology that is gaining popularity with many companies.   Cloud computing is a hosted computing service that is offered by cloud computing providers. The users of cloud computing service are able offload the many of the traditional IT tasks. These services can take the place of hardware, software, or data entry staff.  Companies are using cloud computing to gain a strategic advantage over their competition.  Properly deciding to use these services for an organization requires that IT personnel know advantages and disadvantages of cloud computing. 

Services

  There are many different cloud computing services that are offered.  Although a website can exist entirely in the cloud, many companies are taking an ala-carte approach to cloud computing.  These companies find the services that meet a particular IT need.

Database

SimpleDB by Amazon is the leader in the database cloud arena.  SimpleDB is fast, cost effective, and is free when used with other Amazon Services or used below one million requests per month (Amazon, n.d.).  While Amazon’s SimpleDB is low cost and fast it does have limitations.  There is currently a limit of 5000 rows returned from a query.  SimpleDB does automatically many of the tasks data base administrators do such as backup and optimize queries.  Companies that use SimpleDB find that they are able to have a data storage solution without having to hire a database administrator to manage the data.
Microsoft is beta testing its answer to Amazons SimpleDB with the Azure platform (Microsoft, 2009).  The Azure platform gives users a virtual operating system in the cloud. This virtual server has access to a fully relational database.  Many companies that do not want any limits on their databases will choose this option.  Microsoft is currently giving this service away for free until February 2010.

File Storage
Amazon's Cloudfront has gained notoriety by Internet startups that choose to use their file storage cloud to house large amounts of user generated content (Kho, 2009).  Data stored on the Cloudfront can be shared like images on a website or privately stored such as information backups.
Amazon to Cloudfront has become a popular choice among Internet startups because it is able to scale instantly. For example, Animoto.com, a small Internet company of 25,000 registered users, was featured on the home page of Slashdot.com (Kho, 2009).  Over a three-day period increase the amount of registered users to 250,000.  If they had housed all of their IT assets in-house they could have needed up to 10 times the server capacity to stay operational.   Having unused excess server capacity can be costly.  Amazon’s Cloudfront allows companies to scale there processors and network bandwidth usage automatically.  Animoto.com was able to keep their website up and running during the spike in traffic. 

Testing
Software testing is an important part of developing software.   There are many different types of software testing companies.  Many companies test their software programmatically for bugs or perform a stress test of their software. 

Stress testing can be particularly difficult for website companies because often need a large number of computers pinging the website at the same time.  Many companies do not have the staff and machines necessary to perform a stress test effectively.  Skytap is website testing cloud-based service that can perform stress test on a website (Babcock, 2009).  Skytap’s testing software integrates with Microsoft’s Visual Studio, a software development platform, and allows company testers to upload test instructions to the Skytap cloud.  Skytap then uses their large bank of computers to run their stress test.   
Security

A company’s most vulnerable part of their IT infrastructure is the internet (George, 2009).  The internet has become an integral part of modern business.  Employees use web based tools and website as part of their jobs.  Many companies have chosen to use antivirus products and spyware software to help guard against security threats.  Clouds are being offered that will secure company's entire network through its enhanced security protocols.  This allows companies to eliminate the need to buy antivirus software and reduces the amount of computer updating the need to do.

Computing
Microsoft is offering virtual computers through their Azure platform (Microsoft, 2009).  Companies can upload their entire computing system to Azure’s platform.  Users can specify the amount of memory and processor speed of the servers they wish to use.  This allows companies  increase the amount of servers they can use without needing to spend the resources purchasing their own server farm.  Companies that require a large amount of processing power such as scientists can use Microsoft platform to scale their applications across many computers. 

Human Work

Many websites needing data reviews on products have found that Amazon’s Mechanical Turk provides them a way of getting a large number of data entry people to do simple tasks.  Companies like the Mechanical Turk solution because it is able to scale rapidly.  Hundreds of man-hours worth of work can be done in a single day.  Companies using the Mechanical Turk do not have to hire permanent employees or supply office space and computers to temporary employees.  Mechanical Turk allows companies to walk away when the project is completed.

Use Implications
There are many different kinds of services that are offered by cloud computer vendors.  This new way of doing business can help companies reduce cost and speed up the time to market of their products.  The challenge of modern business owners is to know what types of these services can help their company and what could leave them vulnerable.  Although cloud computing offers many advantages over traditional IT infrastructures it also requires a different set of skills.  Cloud computing requires that IT professionals have an understanding of the ramifications of working in the cloud. 

Cloud computing is not a good fit for every organization.  Companies need to look at their needs and compare them with the services that are being offered.  Companies also need to look at the legal ramifications of using services in the cloud.

Project Management
Project managers need understand the implications of working with cloud computing.  Cloud computing can lock companies into service level agreements, software architectures, and vendor limitations.  Project managers who are successful in developing projects in cloud computing environments need to understand how to maximize the benefits of cloud computing and minimize the risks.

Legal

Companies that are dealing with private information must be able to ensure that their service provider is in legal compliance (Bean, 2009).  Internal auditors may not be able to properly review the information as mandated by law.  They are different laws that apply to data hosted on the cloud.  If the police are looking for information host on the cloud they can do so without a warrant (Bean, 2009).  Information that is stored in a company's private servers is protected.  This lack of control can be costly for organizations that wish to keep their information private.
Contracts
In 2007 Carbinite Inc, a cloud service provider, lost the data they stored for 7500 clients (Zielinski, 2009).  Amazon's popular S3 went down for eight hours at one time.  Contracts help companies recoup losses when disaster strikes.  Carbinite, for example, paid customers for their outage.

Legal contracts also help companies deal with the legal standing of a company.  A company that is using a cloud that has its servers housed a different country may not have legal standing in the country that the client resides in.  If the client needs to sue they may have to take it up with the legal magistrates of the country where the servers are housed (Zielinski, 2009).

Many cloud providers have servers in multiple countries.  This helps them scale on a global basis.  Cloud service providers often place their servers several countries mitigate the risk of natural disasters bringing down their services.  When a natural disaster strikes in one area and the servers are brought off-line.  A cloud service provider that operates in different countries can continue to operate seamlessly when disaster strikes.  Having its data sent to several countries simultaneously, cloud computing can present companies with increased risk of legal implications in each of these countries.   

Updates
Updates of the cloud servers are taken care of by the service provider (Smith, 2009).  This can reduce the burden of server maintenance on the purchaser of the cloud service.  Many counties find they are able to reduce or eliminate the need for IT staff because of the ease of operating within the cloud. 
Software updates issued by the cloud provider can be a different situation.  Many cloud providers issue new updates to software they provide.  This can be problematic when dealing with hundreds of customers.  A software update may break existing customers systems.  Many cloud computing providers have dealt with this is by allowing the consumers of their product the ability to tell them which version they are using.  Versioning of cloud services helps consumers target a particular service version.  Updates may add have new features, however, upgrade the new version may require additional development and testing resources.  By allowing companies to target versions cloud providers are making it possible for the consumers of the cloud services the ability to upgrade services on their timeline.

External factors such as new versions by cloud providers may not be within the budget of project managers or within their SDLC plan.  This could throw project plans off track.  For example, if a company was developing a product depend on cloud computing and the new version came out during the middle of their development they may need to start from the beginning on some of their software developer plans.  Versioning allows them to target one stable implementation of the cloud computing service.

Development
Cloud computing requires that developers have a different mindset than traditional software developers to.  Software developers to use cloud computing must take a modular approach to developing software.  They must also consider the different types of resources they'll be using as they develop software that is dependent upon cloud computing resources.
Software as a Service
The term software as a service (SaaS) describes a subset of cloud computing.  Software as a service entails offering a program interface for a service that is hosted in the cloud (Gold, Night, Mohan, & Munro, 2004).  Companies such as Google have offered their mapping SaaS for years.  Users of SaaS can integrate this on-demand software product as part of their system (Williams, 2009).

Modular Programming
Companies that are consumers of cloud computing products are forced to develope their software around the constraints of cloud computing (Luthria & Rabhi, 2009).  Cloud computing forces software engineers to use a modularized approach to building software.  The software must be able to integrate cloud services into their systems.  This may not be the ideal solution for many companies.  Making too many requests to a cloud, for example, could result in a slow performing application.  Software developers may need to architect their software in a way that limits of the impact at the cloud will have on their systems.  Many companies find that they are able to have a faster build time by purchasing software components that are not cloud based.  These help the software developers build products faster and limit the impact of network latency.

SaaS’s use of Simple Object Access Protocol (SOAP), a XML-based cross-platform language, allows it to fit in with many companies service oriented architecture approach to developing systems.  In a service oriented architecture approach developing systems parts of the whole application are broken up into components and communicate via SOAP.  This allows many programs to use the same components.  Because SOAP is able to communicate with many languages on many different offering systems cloud computing allows companies to develop software on different operating systems and platforms that use the same cloud.
Latency
Sending information from a client to the cloud involves SOAP.  The use of XML requires a larger amount of data to be sent across the network (Conry-Murray, 2008).  This can slow systems down if they rely on a heavy amount of data to be sent.  Sending data to remote servers halfway across the world can also reduce the speed of the software being built.  Software with latency issues can appear to freeze out while the software waits for the information to come across the network.  Websites that have latency issues can appear to load very slowly.

When developing programs that use clouds as part of their architecture.  Developers need to be aware of the amount traffic they're sending in the limitations of their internal network.  Products are developed on the company's intranet that our bandwidth heavy can have an impact on other systems that use the intranet. 

Management
Unlike many of the modern advancements in technology cloud computing did not spring up from one persons idea.  Cloud computing has evolved slowly to meet the needs of businesses.  Cloud computing is a product that has been able to meet the needs of business, management and developers (Snyder, 2008).  In today's competitive business environment IT managers have embraced cloud computing as a way of cutting costs, reducing time to market, and using a platform that encourages growth.  Companies are using cloud computing reduce cost and free up capital.  For example, SAP Aktiengesellschaft, a large SAP software company is reducing the cost of traditional licincing fees associated with SAP by giving their clients to choice to use a cloud service from them rather than buy SAP on top of the software they provide (McGrath & MacMillan, 2009).
Cost
Capital expenditures make it difficult to start new companies or new projects.  Many companies require lengthy budget approval processes to buy new software.  Cloud computing provides a solution for this problem for many companies.  Systems that are housed in the cloud require only operational expenditures because of their pay-as-you-go payment plan.  This is making it possible for management to skip the budget approval process and make IT decisions that are important to their business. 

Many cloud computing companies such as Amazon and have a minimum threshold of requests before they start charging.  Amazon's simple DB does not charge until the application uses 25 machine hours or reaches a gigabyte of either storage or data transfer (Amazon n.d.).  This allows startup websites to develop their website without incurring any costs.  This also allows many small projects or hobbyist to build systems at no cost at all.

Many IT managers like the fact that there are many providers for the same types of systems.  If, for example, a company finds a lower cost provider for the same service they can switch.  Because virtually all cloud services use SOAP switching between providers is not difficult.

Organizational Strategy
Many CEOs like utility that cloud computing allows them (Luthria & Rabhi, 2009).   Cloud computing modular structured approach to help IT management to form an organizational strategy based on modular assets that they already possess.  Modularity of cloud computing allows companies to grow more rapidly because they do not have to reinvent their software and architecture for every project.

Cloud computing also allows companies to maintain a smaller IT staff.  This can change the primary role of IT in many organizations from maintenance to development.  This in turn can help companies grow faster.  Companies with less IT staff are able to be more flexible with their systems.  Companies that use cloud computing find that they do not have to wait for budget approval before implementing new systems that require servers.

Companies who wish to use cloud computing successfully must be able to live within the confines of the services being offered.  For many companies that wish to grow their features of a product control of the development process may be a large factor.  Cloud computing only provides a limited resource.  The business stake holders do not own the cloud service.  They have no real ability to have the service provider add features (Antonopoulos, 2009).

Organizational Structure
Large maintenance staffs are often not required on companies that use cloud computing (Luthria & Rabhi, 2009).  These companies can use their savings to hire a larger development team and produce the solution even sooner.  This shift the types of IT people a company needs can often mean they are able to produce products even faster by shifting the personnel in the IT department from maintenance to development.
Organizations that use cloud computing need to hire people who understand the legal implications of using cloud computing.  Organizations may also need to have lawyers review service level agreements and other documents pertaining to the services that are they provide. They may also need to hire project managers who understand the limitations that cloud computing puts on the development team.  Finally, they may need to hire developers who program in a language that is supported by cloud typical cloud providers. 

Future Growth
A survey published in December 2008 found that 90% of companies are planning to grow their use of SaaS (O’Sullivan, 2009).  Service oriented architecture is becoming the de-facto software development methodology for many companies.  SaaS a standardized SOAP communication protocol making it a good fit for future growth.

Many companies are using SOAP’s low overhead and cross-platform ability to develop systems that are compatible with newer devices such as smart phones and home gaming consoles.  In the future there could be many different types of systems with varying levels of capacity that would all need to use similar software.  More than any system of available today cloud computing allows companies to care for growth.
Cloud providers and clients are finding ways of communicating other that SOAP.  Some cloud companies are providing JSON support which allows web browsers to communicate directly with the cloud (Udell, 2006).  Companies are making software that allows people to use the cloud without using SOAP.  Bucket Explorer is a software product that allows anyone to put file on Amazon’s S3 with a simple user interface (Charmbal, n.d.).
Scalability
Cloud computing on-demand model allows companies to use only the amount of services that they need (O’Sullivan, 2009).  Many cloud computing service providers offer a free account for development purposes.  A company can use a very inexpensive or free portion of a server while they are in development and then scale up as needed.
Scalability can be a large problem for organizations.  Increasing the amount of servers may require new electoral lines be put in, new ventilation and air-conditioning systems be installed, additional space be rented to house the equipment, additional server licenses, and the cost of the equipment itself .  Adding additional servers to a project can be a very costly and time-consuming task.  The cloud computing pay-as-you-go system does not require any upfront costs.  In most cases the cloud automatically increases the amount of servers when it detects an additional load and placed on the cloud.  The customer is then built for what they use.
Internet-based companies find that they have highly fluctuating server loads.  These companies can easily receive 10 times the traffic on a normal day when they are featured on an Internet news sites.  For a company to be able to accommodate spikes in traffic without cloud computing would mean they would need to have 10 times the amount of capacity than they would use on a typical day.  During a typical day most of their servers would be unused.  Having large quantities of unused servers can be a cost burden for many Internet companies.
Maintenance
With cloud computing server maintenance is part of the service (O’Sullivan, 2009).  Companies that use cloud computing and not have to worry about upgrades and obsolete computers and operating systems.  Cloud providers free their subscribers from having to support their servers.
As most cloud services support older versions of their products companies who do not want to perform upgrades on their existing software have no reason to.  There is no reason to perform software maintenance unless a company wishes to upgrade their existing system.  This allows companies to make changes on their time schedule.
Business Perspective
From a business perspective cloud computing makes a good deal of sense.  It allows companies to quickly develop a system that is secure and can be easily integrated with system both internal and external to their company.
Fast to Market
Cloud computing componentized modular approach allows companies to develop software faster.  This can give companies a competitive advantage.  Companies who are able to deliver new software and software upgrades are more able to meet the needs of their customers.  The ability to deliver new products to market faster has been very desirable to web site companies.  In these types of companies there are usually several companies that compete with the each other for users.

Mash-up
Products that are available on the cloud can be shared with business partners.  A service that has been combined with another to create an additional product is called a mash-up (Fichter & Wisniewski, 2009).  Business people are realizing the advantage of using mash-up technology.  Google for example, offers it’s mapping software for free on the Internet.  CrimeReports.com, for example, gets data from Google maps and the publicly available information on crimes to create a report for a given area. 
Companies are able to provide part of their web software as a service.  Other companies can use these software products but usually are required to have a link back to the company that provided the service.  This has allowed many ecommerce companies to sell their products on other websites. 

Security
Security is a major concern for many companies.  Cloud computing can present a risk to security by having data that is readily available through the Internet without fire walls. Data is usually locked behind a lengthy username and access key.  In a company if a person who has access to the companies databases leave the company can simply remove that person’s access.  If, on the other hand, the company wishes to restrict a person from the cloud they would have to change the username and password for the cloud.  This would mean that every system that is accessing the cloud would not be able to communicate with it.  Software developers need to have a way of storing cloud passwords in a way that allows them to be changed across all their systems in a moment’s notice.

Platform Agnostic
In a traditional software development environment software is built for one specific operating system and software package.  For example, if the software is built using SQL Server and the F# programming language than the software would only be available to companies that used Microsoft Windows operating system.  Cloud computing, however, with its SOAP data transfer protocols allows software to that is developed on one operating system to be used by others.  Cloud service providers often have easy ways for developers to port their service to systems such as smart phones.  Many cloud providers provide software plug-ins for popular programming languages.  Companies who find that they are able to use a popular programming language are able to develop software even faster using cloud computing. 

Conclusion
Cloud computing is finding its way into many businesses.  Cloud computing provides a strategic advantage over traditional software development methods.  From a developer point of view computing provides a quick way to develop systems that are powerful, scalable and have had some level of bug testing.  From a project management point of view about computing aids in the design process because it has an easily quantifiable set of services.  These services help guide the project manager break the project into small tasks.  Having a cloud system that has been used by many people allows companies to reduce the amount of testers needed for project.  IT managers like cloud computing because it reduces the cost of software development and also reduces the amount staff they need to buy and maintain servers.  Business people like cloud computing because it is readily scalable.  With its service on-demand computing is able to grow with the company and is able to meet the company's needs when they see spikes in traffic.  This can reduce the threat of downtime in critical peak times.

Cloud computing is not without its risks, however.  Cloud computing can increase the risk of data being leaked.  Cloud computing can be network intensive.  A company that is rely on cloud computing must make sure that there networks are able to handle the traffic.

Companies using cloud computing should understand legal implications when choosing a service provider.  Unlike internal software if there is a problem with a cloud computing service is outside the organization the company must rely on the cloud provider to fix its issue.  The company’s contract determines what is owed them by the service provider.  The country must also willing to sue the service provider if they not living up to their contract.  Companies need to understand the risks of down time by a service provider. 
Cloud computing is not a panacea and is not the right solution for every company.  Companies that use cloud services cannot control the development of the services offered by cloud providers.  If the user of a cloud service needs new features added, they would have to wait for the cloud provider to develop it (Babcock, 2009).  When looking at cloud computing a couple he must weigh the pros and cons of using each service.  Cloud computing provides strategic advantages over traditional software development for many companies.  While cloud computing is a great solution for many industries such as the web industry it may also be a poor solution for companies that needs a more secure environment.  When deciding upon cloud computing IT professionals should compare the risks and rewards of developing using cloud computing.  

References
Apicella, M. (2006). The new NAS: fast cheap & scalable. InfoWorld, 28(5), 31-34. Retrieved November 11, 2009, from ABI/INFORM Global.
Conry-Murray, A. (2008). Startup city. InformationWeek, 1212(), 12. Retrieved November 9, 2009 from ABI/INFORM Global.
George, R. (2009). Cloudy, with chance of pain.. InformationWeek, 1244, 31-32. Retrieved November 11, 2009 from ABI/INFORM Global.
Kho, N. (2009). Content in the Cloud. EContent, 32(2), 26-30. Retrieved November 11, 2009 from ABI/INFORM Global.
Udell, J. (2006, September). Amazon.com’s rent-a-grid. InfoWorld, 28(36), 38. Retrieved November 24, 2009 from ABI/INFORM Global.
Williams, S. (2009). Web-based technology. Professional Safety, 58, 8. Retrieved November 11, 2009 from ABI/INFORM Global.