WELCOME-

This Blog is dedicated to giving an accurate compilation of notes and interpretations of Lannon's Technical Writing text book. Hopefully this will be helpful in furthering your understanding or even just giving you a look at the challenges of technical writing.

Monday, April 18, 2011

Cloud Computing, Chapter 12

CHAPTER 12: LOCAL CLOUDS AND THIN CLIENTS

A local cloud, or presentation virtualization, allows you to manage all of your data from your own datacenter. Most companies opt to go with a hybrid model, meaning instead of outsourcing they create their own cloud and use thin clients to access it.

Virtualization
Server vertualization is  when a server is partitioned into multiple servers so each appears and can run its own dedicated machine. Application virtualization is the software technology that separate them from the underlying operating system. A fully virtualized application will run as if it has been fully installed and it is tricked to believe that it is interfacing with the OS and resources. Presentation virtualization isolates the processing from the graphics which allows for the thin client to control the server. Virtualization can help with cost meaning you can have a cost-free datacenter where you buy the servers but use the options for free virtualization software and operating software. However you can use licensed software, the free software may have a higher operation cost for managing the OS and apply patches. This set up will also lover you administration burden by allowing quicker access and new server deployment. When virtualizing you should create a specialized plan depending on your needs. To create your plan you should look at usage now, CPU, Memory, adapters, file and system capacity, and total useled and unallocated disk space. Peak access should be monitored as well. Virtualized servers have the same security as normal servers.

Server Solutions
Differences in the server and the clients are major in the virtualized environment. the Server does everything in the virtualized environment. Hyper-V is Microsoft’s virtualization software, it is flexible and automatically adjusts to changing conditions. There are also solutions that configure, operate, deploy, and back up physical and virtual servers from the datacenter to the desktop. One of the benefits of Hyper-V is the use of the Windows platform. VMware is a virtualization project for the Linux platform. VMware is also teaming up with Intel to help promote the adoption of virtualization.

Thin Clients
Thin clients can be up to 80 percent more power efficient then a traditional desktop. Sun has created a thin client named Sun Ray, it is capable of displaying Solaris, Windows, or Linux on the same device.  HP the leading manufacturer of thin clients. Dell also produces a line of thin clients.

Cloud Computer, Chapter 11

Chapter 11: Developing Applications

There is a vast number of applications out there for the many different operating systems in existence.  However, if you can’t find the one you need, it’s not time to fret.  There are utilities that can be used to create the applications that are needed quickly and efficiently.

Google
Google is a great place to start if you need a quick application made and don’t have any resources to back it up.  The Google database, Google App Engine, is located in the cloud, so there is no cost to oneself for storage or management. Google’s engine uses Python as a programming language, which means, since Python is like many other languages, if you know any programming languages then you’ll have an easier time making the app through Google. Other advantages include cheap costs, being open source, and easy integration with SQL reports.

Salesforce.com has a services and tools available for use in the Google App Engine. These can help with the use of Python and its different capabilities. Also available are libraries for Python and tools for development of applications for mobile devices.

Also, Google has a system called Google Gears that can be used to create offline applications and is open-source. This targets one of the biggest concerns with cloud computing which is the fact that a lack of an internet connection would render the use of cloud computing useless.

Microsoft
Microsoft has a service called Azure Services Platform that allows you to create applications for remote server uses.  This platform allows one to create applications that can be run on many different systems including web and client servers.  It uses Microsoft Visual Studio and is run through the .NET Framework. Its management scales based on need and can be accessed through many different protocols such as HTTP, REST, SOAP, and XML.

There are many uses that come with Azure that include SQL Services, .NET Services, and SharePoint and Dynamics CRM Services.

The design of Azure Platform applications start with a zero layer as a hardware foundation. Then, Layer One, is the Azure operating system that can be used as storage and virtualization. Layer Two includes the building blocks to create applications and Layer Three has other applications already created.

Intuit QuickBase
This program allows users to make applications specifically for industries and business models that they need it for. This draws from 200 templates to make business applications. They offer SaaS services to create applications as consultants quickly, cheaply, and more effectively than going at it alone.

Cast Iron Cloud
With Cast Iron Cloud, there is the option of either creating applications in the cloud, or using them in an on-site integration. This allows for an easy transition between the two. They have a library of integration processes available for client use.

Bungee Connect
This is a platform that offers a development environment for testing and implementation and also offers hosting for these applications. They offer easy browser delivery and integration with web services such as SOAP and SQL.

Cloud Computing, Chapter 10

Chapter 10: Software plus Services

Benefits include combination of client software with Internet, working offline gives flexibility, you can keep most sensitive data housed on-site and move rest to the cloud, more efficient, software can be offered in different shapes and sizes.

Cons include cost if you are use a service heavily, quality of service, and fear of storing data on the cloud.

A broad alliance developed Android, an open and comprehensive platform for mobile devices.  This alliance shares a common goal of giving consumers a chance to experience performance improvements over existing mobile platforms.  
Thirty-four companies have formed the Open Handset Alliance, which aims to develop technologies that will significantly lower the cost of developing and distributing mobile devices and services.  

Software plus Services is a good match for mobile users, telecommuters, and others on the go, there is still value for deskbound users.  Applications can be developed by your organization or your vendor, depending on what your vendor offers or what you need.

Microsoft offering Software plus Services allows for a functional way to serve your organization, but it also provides a means to function on the cloud in a way that you are probably already used to with your in-house computers.
In addition to significant new Software plus Services to support customer and partner choice and flexibility, Microsoft also offers a spectrum a new partner opportunities.  
Microsoft has also seen broad adoption of its unified communications platform and products.  

Tuesday, April 12, 2011

Cloud Computing, Chapter 9

Chapter 9: Software as a Service


Software as a service is when an application is hosted on a server so that clients can connect to and use that application without having to have a physical copy on their side. This can be split into two categories that are a line of business services, which are business oriented applications that are subscription based, and customer-oriented services, which usually have the option for free usage with ads rather than pay-only subscriptions and are geared toward the public.


Advantages

There are many advantages to using SaaS.  These include lowered costs in installation and labor since all of the applications are in one place, lower licensing costs, tighter security, and the most up to date versions.  This can also benefit the vendor too, since the use of SaaS places less concern on hard copies of the software and pirating issues.

There are, however, some limitations that are presented.  Since SaaS is something that has to be built so that everyone can use it everywhere, it can be difficult to create the necessary software.

Driving Forces

SaaS has become very popular and this is due, in part, to the rise in cloud computing. Both software vendors and enterprises have come to welcome SaaS, one reason being the lightened work load when the applications being used area part of the cloud. Virtualization has also increase the ease of using SaaS as well as service-oriented architecture  or SOA, which is allows companies to increase the internal and external availability of their systems.

Company Offereings
  • Intuit - Quickbooks
    • Quick and easy access to financial data 24/7
    • Online hosted software for low maintenance and overhead
    • Simple retrieval of information
    • Mobile capabilities
  • Google
    • Google Apps with free and business-oriented models
    • Offers storage, business APIs, and reliability for a low cost
    • Apps include Gmail, Google Docs, Calendar, and mobile solutions
  • Microsoft - Live Small Business
    • Includes many free resources such as web hosting, productivity applications, and custom domain names
    • Online Store Manager that allows for a personal marketplace
    • Along with domain name comes a business email service allowing 100 accounts with 5 GB each
    • Simple activation, integration, and synchronization with current Microsoft products
  • IBM - Blue Cloud
    • Built for corporate data centers to allow an easier distribution of its data across connected machines
    • Includes a testing environment for different applications such as those made in Web 2.0


Other Industries
  • Healthcare
    • Microsoft HealthVault - A medical data SaaS
    • Advanced MD - A medical billing software
  • Collaboration
    • WebEx - A set of collaboration software built for meetings, event, sales, etc.
  • Construction
    • CMiC - Software solution for architecture, engineering, and construction
  • Retail
    • Epicor - A pay-as-you-go solution for store retailers for merchandising, allocation, replenishment, etc.
  • Banking
    • OpenChannel
      • Online banking through many services including mobile devices
      • Also includes electronic bill payment, value-based routing/payment preference, and high security

Monday, April 11, 2011

Cloud Computing, Chapter 8

Chapter 8: Standards

A cloud application is the software architecture that the cloud uses to eliminate the need to install and run on the client computer.  There are many applications that can be run, but there needs to be a standard way to connect between the client and the cloud.  For instance, HTTP is the standard for transferring data between the cloud and your organization.

While HTTP is the most common way to connect browsers to the cloud, the Extensible Messaging and Presence Protocol (XMPP) could be the next big thing for cloud computing. XMPP allows for two-way communicating, instead of just one-way information exchanges.  It also eliminates polling, or having the client ping the host at regular intervals.  XMPP is XML-based and and easily extensible, which makes it ideal for cloud computing, as well as being efficient and able to scale to millions of concurrent users on a single service.  


Secure Sockets Layer (SSL) is the standard security technology for establishing an encrypted link between a web server and browser, ensuring that the data passed between the browser and the web server stays private.  It includes some behind-the-scenes steps, and all you are likely to see is that the page takes a bit longer to load.


Cascading Style Sheets (CSS) are used to control how pages are presented, and make pages more accessible.  Dynamic HTML (DHTML) is a different way of looking at and controlling the standard HTML codes and commands, rather than a new specification of it.  Four parts to HTML are the Document Object Model (DOM), which allows you to access your web page and make changes with DHTML; scripts, which are used to control the objects specified in the DOM; CSS, used to control the look and feel of the web page; and XHTML, the code for writing the web pages and is used to build the elements for the CSS and the DOM to work on.  
One of the most common uses of DHTML is changing the qualities of an HTML tag, depending on an event outside of the browser. Real-time positioning allows objects, images, and text to move around the web page.  

Javascript is a scripting language used for client-side web development.  It runs locally on a user’s browser rather than on the server, so it responds quickly to user actions. It can detect user action, which HTML cannot, like sensing individual keystrokes.

Infrastructure is a way to deliver virtualization to your cloud computing solution.  Virtualization is gaining widespread adoption due to its indisputable customer benefits.  
Hypervisors are the foundational component of virtual infrastructure and enable computer system partitioning. As an initial step, VMware contributed an existing framework of interfaces, based on its virtualization products to facilitate the development of these standards in an industry-neutral manner.



As the result of VMware and its industry partners’ efforts, a standard has already been developed called the Open Virtualization Format (OVF).  It is platform-independent, extensible, and open specification for the packaging and distribution of virtual appliances composed of one or more virtual machines. OVF gives customers and developers the choice to select any hypervisor based on price, preference, or functionality, and it prevents vendor lock-in.  


A web service is a software system designed to support interoperable machine-to-machine interaction over a network that may be accessed by other cloud computing components.  JavaScript Object Notation (JSON) is a lightweight computer data interchange format, used for transmitting structured data over a network connection in a process called serialization, and is often used as an alternative to XML.  It should be used instead of XML when JavaScript is sending or receiving data. Extensible Markup Language (XML) is a standard, self-describing way of encoding text and data so that content can be accessed with very little human interaction and exchanged across a wide variety of hardware, operating systems, and applications.  XML provides a standardized way to represent text and data in a format that can be used across platforms, and can be used with a wide range of development tools and utilities.  
Web services describe how data is transferred from the cloud to the client.  Representational state transfer (REST) is a way of getting information content from a web site by reading a designated web page that contains an XML file that describes and includes the desired content.  It is similar in function to the Simple Object Access Protocol (SOAP), which offers more capability but is harder to use.
An important component in REST is the existence of resources, which are sources of specific information and each one is referenced by a global identifier.  

SOAP is a way for a program running in one kind of operating system to communicate with a program in the same or another kind of an operating system.

Cloud Computing, Chapter 7

Chapter 7: Cloud Storage

Storing data with a cloud service provider...

Overview:

If stored in the cloud, your data can be accessed from any location. There are hundreds of different cloud storage providers, ranging from general to very specific niches. Like flicker with pictures. All that is need for a storage system is a data server connected to the interwebs, most systems are made up of dozens or hundreds of servers. Due to maintenance it is necessary to store the data on multiple servers, without this data access couldn’t be guaranteed at all times. Cloud storage is used, often, as a safety net so that if something happens to their computer- like a hijacking-  the data is still accessible. Storage as a Service (SaaS) is when a third party rents space on their dataservers to end users.

Specialized Cloud providers are google docs (documents, spreadsheets, powerpoints), web email from gmail, yahoomail and hotmail, flickr and picasa specialize in pictures, youtube hosts user videos, and facebook and myspace are networking sites that allow users to post pictures and videos. Many of these are free, but some storage charges per GB of data. Securityt takes the form of encryption using complex algorithms to encode information, authentication through a user name and password, and authorization practices  where the client creates a list of people authorized to access the data. However the threat of hackers is always hanging in the air.

The reliability of the system, if you are unable to access the data stored due to a system crash, but with how many different services available those unreliable providers will have few clients and often aren’t around long. Cloud providers move and balance the information on their dataservers making the information close and easily accessed. Cloud storage is a great safety net for data in case of a disaster, the files are okay and backed up off site.



It is best, at this point in time, to used a mixed approach as cloud storage is still immature. It is recommended that the cloud is used for noncritical purposes. The most critical factors to take into consideration when thinking of moving to the cloud is price and reliability, try different services to find the one best for your needs. Outages are a possibility, so take that into account when deciding on a provider. Security and theft are risks with cloud storage, when the data is away from your own datacenter; make sure to encrypt your data and secure the data transit.

Providers:
(non comprehensive list)

Amazon Simple Storage Service (S3)-
Launched in 2006, S3 was designed to make wed-scale computing easier and can be used to “store and retrieve any amount of data, at any time, from anywhere on web”(142). It allows any client to use the infrastructure Amazon uses. It allow for an unlimited amount of objects to be stored, written, read and deleted. Each object is stored and retrieved with a unique key, they can be public, private, or for specific users. S3 was built to be scalable, reliable, fast, inexpensive, and simple. In order to do this Amazon made the system decentralized to remove single points of failure, autonomic so that individual components can make decisions using local data, localized responsibility, little or now concurrency control required, failure of components normal, parallelism, build small components that can then been built on for other services, simplicity.
S3 works using a “bucket system” where each object (up to 5GB) is stored with 2KB of Metadata, these objects are organized by “buckets” and are owned by an AWS account and identified by a unique key. Developers only pay for what they use!

Nirvanix-
Software file system stored on intel storage servers, they are expecting to add more server locations. The Nirvanix Storage Delivery Network (SDN) turns a server into network attached storage.

Google Bigtable Datastore-
Made public in 2008, Bigtable was developed to be highspeed, flexible, and high scalability. It is available as part of the google app engine. Developers have been cautious about using bigtable as they get locked into google. Cost wise it runs about the same as Amazon.

MobleMe-
Apple’s solution with email, contacts and calendar. They also provide ad-free web applications for a desktop like experience. Push keep contacts, email and calendars up to date no matter what you use to access the MobleMe.  20GB is $99 a year for an individual or $149 for a family, additional space can be purchased.

Live Mesh-
Microsoft’s solution, which allows PC’s and other devices to be aware of each other. Live mesh is made of a platform defining and modeling a user’s digital relationship among devices, data, applications, and people; hosted in Microsoft datacenters, software that enables local applications to run offline. The software, Mesh Operating Environment is available for XP, Vista, Mobile and OS X.


Cloud Computing, Chapter 6

Accessing the Cloud

Platforms: how cloud computing is delivered
AJAX,  Asynchronous JavaScript and XML, consists of multiple technologies and languages used for creating interactive web applications. The interaction of the languages and other tools allow for the retrieval of information from other sources, as opposed to rewriting the repeating information. However these sites are hard to favorite and often they do not show up on the History engine, meaning the back button will not show the previous page.
Web hosting service, often referred to as the “cloud provider”, are organizations that will host your information. Amazon Elastic Compute Cloud and Mosso are examples of cloud providers. Individual companies like microsoft and salesforce, have designed their own infrastructure for cloud interfaces.
***side note- pre-existing libraries can be used to create web applications

Web Applications
When using applications in the cloud, there are many, many choices from which to decided. Finding the right one for your needs comes down to the provider and what they offer. Google is a huge cloud operator and offers many different applications including mail, im, calenders, a customizable homepage, documents, and access from mobile devices.

Web APIs
APIs, application programming interface, is an interface that allows one program to talk to another. In a way, you could see it as translating from one language to another. This is done very often in web design and is commonly used as a way to communicate between different types of servers so that information can be transferred and processed quickly and accurately. An example of this is the verification of credit card information when making an online purchase.
There are a vast number of APIs with numerous purposes.  These interfaces exchange data through web services using programming languages like XML, which is used as a standar, so that they can be modified to perform various tasks.  SOAP, a standard for any network protocol, UDDI, which functions like a directory, and WSDL, which is used within UDDI for network descriptions, are other standards that can be used.
There are many ways to make your own APIs if you aren’t able to find one that suits your needs. Using Google Data APIs and a website known as Salesforce.com, you have all the tools and information necessary to create many different types of APIs.
One type of API is the GoGrid system that allows individuals to communicate to and control their GoGrid cloud server.  The API allows for many different features, such as listing of information and control of data servers, and lets you use multiple programming languages like Java, PHP, Python, and Ruby.
Apex is another often used web service API that supports approximately fifty percent of the APIs on Salesforce. This API allows for complex instructions through a single command and is executed quickly through the JOIN functionality that only Apex’s API uses. There are multiple capacities that are offered by Apex which include Apex Builder, allowing for drag and drop customization, Apex API, the service that allows for data exchange, and Apex Code, a server-side language for Apex that reduces the stress that the server takes from API data calls.



Web Browsers
Browsers tend to be mostly the same, with a few functional differences, so you can use any browser you want.  Internet Explorer is the most popular, probably because it is included with Windows, but there are several other options.

Internet Explorer 8 is the latest version (unless you’ve used a computer more recently than the book was published).  The biggest change was in its multiple content-rendering modes - both supporting strict interpretation of certain web standards and also supporting behaviors designed to maintain compatibility with existing web sites.  The newest rendering mode is forward-looking and preferred by web designers, while the others are around to enable compatibility with sites optimized for earlier browser versions.  

Firefox 3 was released in June 2008, offering over 15,000 improvements and 2-3 times faster.  The smart location bar, known as the “Awesome Bar,” learns as people use it; the library archives history, bookmarks, and tags; and the new full-page zoom displays any part of a web page, up close and readable in seconds.  Built on top of the Gecko 1.9 platform, Firefox 3 is safer, easier-to-use, and uses less memory while its running.  There is  new malware and phishing protection, and the one-click site ID information allows users to verify the site.  

Apple claims that Safari 3.1 is the world’s fastest web browser, as well as being the first browser to support the latest standards needed to deliver Web 2.0 experiences.  Safari features include drag-and-drop bookmarks, integrated Find capability that shows the number of matches in a page, and a built-in RSS reader.  

Google Chrome was designed to make it easy to search and navigate for content.  Features include a combined search and address bar; new tabs show most-visited sites, recent searches, and bookmarks; and each browser tab operates as a separate process.  Chrome could be a great tool for cloud computing: it extends the cloud into your organization’s computer, and vice versa, because of the V8 JavaScript engine and built-in Google Gear.  It is believed that Chrome will allow desktop and web applications to merge, putting everything into the cloud so that you won’t even have to think about both terms.

**Note: I don’t know all the new features of IE 9,  Firefox 4, Safari 5, or Google Chrome.  I used the “current” information from the book.

Cloud Computing, Chapter 5

CHAPTER 5- HARDWARE AND INFRASTRUCTURE

Clients


Mobile: pda's, and smartphones, use small, simple applications. Applications can be made with the mobile user in mind so they are easily accessed. Security is an issue with Mobile clients.

Thin: no hard drives, dvd-rom drives, display server on screen. High security level.

Thick: still have most things in house, can connect with virtual server, but if something happens to the machine your data is lost.

Security 


With cloud computing the biggest benefit is the centralization of data, and thin clients make this easier. The centralization of data helps to minimize data leaks and helps simplify monitoring of data because you only have to check one place. Often times the cloud provider will supply 24/7 Tech support so you don't have to handle everything yourself, especially in case something goes wrong. Also because you are not the only one paying they often have more security features then you think, and a better reputation will bring in more clients- and they want that. If, however, there is a breach your provider has an easier time responding then you would with a local one. There are also regulations in place to make sure sensitive data is secure. VPN (virtual private network) can also be used to help secure your data in transit.

Network


The basic public network is the most basic connection for cloud, this the normal internet hook-up found in homes. You buy from an ISP- internet service provider and connect based on your location. The Accelerated internet  is oriented towards the cloud internet provider, and can end up with a 50% performance increase. Optimized internet overlay is used over the basic internet but shows up on the providers cloud.

Cloud Computing, Chapter 4

CHAPTER 4- THE BUSINESS CASE FOR GOING TO THE CLOUD

Cloud Computing Services


Infrastructure as a service, where you are using the cloud provider's machines, meaning you are using a virtualized server and running software on it.

Amazon EC2-
Provides resizable computing capacity in the cloud, and allows easy obtaining and configuration. Amazon makes it cheap by only charging you for the capacity you use. Improvements include load balancing, auto-scaling, monitoring, and management console.

GoGrid-
Windows and Linux cloud based server hosting and allows for quick and easy creation, deployment, load balancing and managing of window's and linux cloud servers.

Platform as a service, building applications and having them hosted by the cloud provider.

RightScale-
near infinite scalability of cloud computing to deploy their applications on supported cloud servers.

Salesforce.com-
Force.com-on demand platform, provides the framework for  creating user experiences and creating new interface designs.

Software as a service,  cloud providing the software you want to use, provides the application for you.




Cloud Computing, Chapter 3

CHAPTER 3- CLOUD COMPUTING WITH THE TITANS



Google
Google App Engine: Allows for applications to be built on the same infrastructure google uses.
Google Web Toolkit: develop and debug web applications in Java.




EMC
Created a virtualized datacenter that allows for multiple datacenters to be run as one. They also work with Archiving, backup/recovery, enterprise content management, intelligent information management, IT management, replication, security, storage and virtualization.

NetApp
storage and data management, one of the first to offer datacenter consolidation/storage. Partnered with Cisco, dynamic datacenter solutions.






Microsoft
Azure Services platform: host, scale and manage web applications
SQL: house data
.Net: provide components for Cloud based/aware applications
Windows Live: communicate and share with others.

Amazon
EC2: webscaleing
SimpleDB: database services, store process and query data sets in the cloud
S3: Storage in the cloud
CloudFront: easy way to distribute content to clients.
SQS: queue for storing messages as they travel between computers.
EBS: storage volumes can be created.

Cloud Computing, Chapter 2

CHAPTER 2- YOUR ORGANIZATION AND CLOUD COMPUTING



Cloud computing is very personalized depending on your needs. There are three major uses of cloud computing: compute clouds, cloud storage and cloud applications. Compute clouds allow for inexpensive, on-demand computing resources that will run the code they are given. Storage was one of the first offering solutions for cloud, it allows you to keep files off site. Applications in cloud utilize software applications that rely on cloud infrastructure. Of course sensitive data should not be kept in the cloud, as one breach may allow this data to be released, and make sure to use a US server as the privacy laws in different nations may drastically change. And sometimes the cloud just isn't needed, so take that in consideration.


Security is the major problem facing cloud computing, privacy with a third party has been called in to question. Are they doing enough to secure your data? What about hackers? and there is no regulation for the cloud.

Cloud Computing, Chapter 1

CHAPTER 1- CLOUD COMPUTING BASICS

Overview:
Then name cloud computing comes from the image of the internet being a cloud, the icon being all the things that makes the internet work. The "cloud" actually is a construct that allows you to access things not directly stored on your computer. For you, this means that another company is storing your applications, where they pay for the servers and update software. However, if your internet access goes down, you are shit out of luck, but that isn't the major problem. The big problem is when something is wrong with the site, if that is down there is nothing that you can do.

There are three parts to the cloud computing system: clients,  distributed servers, and data centers.
- Clients- "the devices that the end users interact with to manage their activities in the cloud"
         Mobile
         Thin-  no hard drive only displays the image
         Thick- regular computers
- Data Center- servers where the application is stored
- Distributed Servers- Severs not housed in the same location


There are different types of infrastructure as well. Grid computing is when computers are linked to work on a single problem at the same time, that is one large project is  divided among multiple computers, while cloud computing is many small applications running at the same time. Full virtualization is where the software on the server is displayed on the client and allows for different operating systems. Paravirtualization allow for multiple operating systems to be run on the same hardware device at the same time.

Services for cloud computing Software as a Sevice (SaaS) where software is housed in the cloud, Platform as a service (PaaS) where all the tools need to create an application are kept so software doesn't have to be installed, and Hardware as a Service (HaaS) which is hardware you can put where ever.

Amazon, Google and Microsoft are some of the big names in the Clouds.