report

46
GOOGLE CLOUD PRINT CHAPTER 1 INTRODUCTION Google Cloud Print is a Google service aiming to enable any application (web, desktop, mobile) on any device in the network cloud to print to any printer – without Google having to create and maintain printing subsystems for all the hardware combinations of client devices and printers, and without the users having to install drivers to the client. Applications submit print jobs to the cloud print service via the API offered by Google. Google Cloud Print then sends the print job to the selected printer which the user has previously registered with the service. New printers which are called “cloud-aware” and connect directly to the cloud print service, while legacy printers will use a Google Cloud Print Proxy. Google defines a Cloud Print Proxy as: a piece of software that runs on a computer connected to a non-cloud-aware printer, a small add-on hardware device that contains the proxy interface and connects to the printer, or firmware that is built in to printers of the future. Currently Google provides a proxy that works on Windows with Google Chrome. They will be supporting Mac and Linux versions in the near future. The Google Cloud Print Dept. of ISE 1 T.C.E. Gadag.

Upload: shilpa-patil

Post on 22-Oct-2014

285 views

Category:

Documents


3 download

DESCRIPTION

google cloud print

TRANSCRIPT

Page 1: Report

GOOGLE CLOUD PRINT

CHAPTER 1

INTRODUCTION

Google Cloud Print is a Google service aiming to enable any application (web,

desktop, mobile) on any device in the network cloud to print to any printer – without Google

having to create and maintain printing subsystems for all the hardware combinations of client

devices and printers, and without the users having to install drivers to the client. Applications

submit print jobs to the cloud print service via the API offered by Google.

Google Cloud Print then sends the print job to the selected printer which the user has

previously registered with the service.   New printers which are called “cloud-aware” and

connect directly to the cloud print service, while legacy printers will use a Google Cloud Print

Proxy.

Google defines a Cloud Print Proxy as: a piece of software that runs on a computer

connected to a non-cloud-aware printer, a small add-on hardware device that contains the proxy

interface and connects to the printer, or firmware that is built in to printers of the future.

Currently Google provides a proxy that works on Windows with Google Chrome.  They will be

supporting Mac and Linux versions in the near future. The Google Cloud Print service interfaces

allow you to create a cloud print proxy that gives you a virtual cloud printer you can send jobs to.

In Google Chrome OS, all applications are web apps. Therefore, in designing the printing

experience for Google Chrome OS, we want to make sure printing from web apps is as natural as

printing from traditional native apps is today. Additionally, with the proliferation of web-

connected mobile devices such as those running Google Chrome OS and other mobile operating

systems, we don't believe it is feasible to build and maintain complex print subsystems and print

drivers for each platform. In fact, even the print subsystems and drivers on existing PC operating

systems leave a lot of room for improvement.

Dept. of ISE 1 T.C.E. Gadag.

Page 2: Report

GOOGLE CLOUD PRINT

CHAPTER 2

COMPONENTS OF GOOGLE CLOUD PRINT

Here's a brief summary of each component in the diagram below are:

Fig 2.1 Components of Google Cloud Print

2.1 APPLICATIONS

Any type of application can use Google Cloud Print, including web apps (such as Gmail)

and native apps (such as a desktop word processor or an Android/iPhone app). These apps call

Google Cloud Print APIs. They can use these APIs to collect the necessary data to show their

own user interface for custom print options or simply use the common print dialog that Google

Cloud Print will provide. There are also APIs for querying print job status. Additionally, when

the APIs are available, third-party app developers will be able to use Google Cloud Print in their

web, desktop, and mobile apps as well.

Dept. of ISE 2 T.C.E. Gadag.

Page 3: Report

GOOGLE CLOUD PRINT

2.2 GOOGLE CLOUD PRINT SERVICE

Google Cloud Print is a web service offered by Google. Users associate printers with

their Google Account via the service. Printers are treated in much the same way as documents

are in Google Docs. Therefore, it is very easy to share printers with your coworkers, friends, and

family anywhere in the world. No need for complex network setups to make print sharing work.

In addition to associating printers with a user's Google Account, the capabilities of each

particular printer model are stored so they can be shown to the user to select appropriate options

when submitting a print job. Once the service receives a print job, it sends it to the printer. It also

receives regular updates on the status of the print job which it makes available to the app.

2.3 User Interface

As mentioned earlier, Google is developing a common print dialog (web UI) that apps

can use to allow the user to select the printer and appropriate print options. Similarly, the

printer/job status and management UI (user interface) will enable users to view which printers

they have registered (or have been shared with them), print job status, etc.

2.4 Printers

And, finally, the number one question people ask is, "How do the printers communicate

with Google Cloud Print?" The answer is, "It depends on whether the printer is a cloud-aware

printer or a legacy printer."

2.4.1 Cloud-aware Printer

The ideal experience is for your printer to have native support for connecting to cloud

print services. Under this model, the printer has no need for a PC connection of any kind or for a

Dept. of ISE 3 T.C.E. Gadag.

Page 4: Report

GOOGLE CLOUD PRINT

print driver. The printer is simply registered with one or more cloud print services and awaits

print jobs. Cloud-aware printers don't exist yet, but one of our main goals in publishing this

information at an early stage is to begin engaging industry leaders and the community in

developing cloud-aware printers and the necessary open protocols for these printers to

communicate with cloud print services. We believe cloud printing has tremendous benefits for

end users and for the industry and is essential, given the rapid shift toward cloud-based

applications and data storage. We also believe that the only way that the benefits of cloud

printing can be realized is if the protocols are open, freely implementable, and, when possible,

based on existing industry standards. We expect there to be multiple cloud print services, and

users should have a choice in which services they use and which printers they can connect to a

service. Stay tuned for more details. We are confident that cloud-aware printers will soon be a

reality.

2.4.2 Legacy Printer

Every printer in existence today falls into this category. This category includes printers

connected directly to PCs (for example, via USB cable) as well as networked printers (Ethernet

or WiFi). This category also includes the recent crop of "web-connected" printers that provide

users with access to certain web services (such as maps and movie tickets) directly from the on-

printer LCD. While these are "web connected," they are not cloud-aware printers in the way we

describe above because they don't know how to talk to a cloud print service to get print jobs, etc.

We want users to be able to print to legacy printers via Google Cloud Print. This is

accomplished through the use of a proxy, a small piece of software that sits on a PC where the

printer is installed. The proxy takes care of registering the printer with Google Cloud Print and

awaiting print jobs from the service. When a job arrives, it submits the print job to the printer

using the PC operating system's native print stack and sends job status back to the printer.

Currently, a proxy for Windows and will support Mac and Linux later on as well. To help

users avoid the trouble of having to install yet another piece of software on their PCs, we will

distribute the proxy with Google Chrome. So, by simply installing Google Chrome on their PC

and enabling the feature (it is off by default), users will be able to print via Google Cloud Print.

Dept. of ISE 4 T.C.E. Gadag.

Page 5: Report

GOOGLE CLOUD PRINT

An obvious downside to this approach is that the PC must be powered on and connected to the

Internet in order for print jobs to get to the proxy (and hence the printer). This current

requirement is why we are excited about working with the industry to build native support for

cloud print services into their printers. We are also hoping some clever folks in the community

will build proxies-in-a-box (like routers with print server abilities) so users get all the benefits of

the proxy without needing to leave their PC powered on.

Dept. of ISE 5 T.C.E. Gadag.

Page 6: Report

GOOGLE CLOUD PRINT

CHAPTER 3

Connect a Printer to Google Cloud Print

Install Google Chrome to connect your printer. By connecting your printer with the

Google Cloud you will be able to print to your printer from any computer or smart phone,

regardless of where you are. Just activate the Google Cloud Print connector in Google Chrome

and your printer will automatically be available to you from Google Cloud Print enabled web

and mobile apps.

Here are the following steps how to do the setting:

1. On the Windows PC connected to your printer, click the wrench icon in the upper

right hand corner of Google Chrome

2. Choose "Options."

Dept. of ISE 6 T.C.E. Gadag.

Page 7: Report

GOOGLE CLOUD PRINT

3. Click the "Under the Hood" tab. Scroll to the bottom to the Google Cloud Print

section and click "Sign in to Google Cloud Print."

Dept. of ISE 7 T.C.E. Gadag.

Page 8: Report

GOOGLE CLOUD PRINT

4. In the dialog that appears, sign in to your Google Account to enable Google

Cloud Print.

5. When you have signed in, you will see this confirmation page:

Dept. of ISE 8 T.C.E. Gadag.

Page 9: Report

GOOGLE CLOUD PRINT

6. After setting up Google Cloud Print your options pane will look like this:

Dept. of ISE 9 T.C.E. Gadag.

Page 10: Report

GOOGLE CLOUD PRINT

You can also print a test page to verify success.

The steps you take to print will vary from application to application.

On Chrome notebooks, click the wrench icon and then select Print to print the webpage

you are viewing (you can also use the keyboard shortcut Ctrl+P).

On Gmail and Google Docs for mobile, click the menu in the top right corner and

select Print.

CHAPTER 4

Dept. of ISE 10 T.C.E. Gadag.

Page 11: Report

GOOGLE CLOUD PRINT

How To Integrate Printer With Google Cloud Print?

For a printer to integrate with Google Cloud Print, it needs to be able to handle three basic

steps:

1. Authenticate the user using the ClientLogin API.

2. Sync the printer’s status and capabilities to the cloud.

3. Handle any print jobs queued in the cloud.

4.1 Client login API

The first step in integrating a networked printer with GCP is to get a Google Cloud Print

Auth token by using the ClientLogin API* to authenticate the user. The printer will need a

method allowing the user to input their username and password, which can be either an in-printer

UI or an online registration service served elsewhere. The process will also need to be able to

serve a CAPTCHA in the event that Google decides the request needs further vetting to ensure it

is coming from a human being.

You will need to request separate Auth tokens for each of the services plan to use, the

Google Cloud Print service (service=cloudprint) to be able to fetch print jobs and the Talk

service (service=chromiumsync) to receive job notifications. The appropriate Auth token will

need to be included in all requests using the HTTP header “Authorization: GoogleLogin

auth={auth_token}”. In addition, all requests to the Google Cloud Print server will need to

include the HTTP header: “X-CloudPrint-Proxy: {OEM_ID}” where the OEM id is a make and

model ID of your choice. The server will only accept requests where the X-CloudPrint-Proxy

HTTP header is defined.

A CAPTCHA is a type of challenge-response test used in computing as an attempt to

ensure that the response is not generated by a computer. The process usually involves one

computer (a server) asking a user to complete a simple test which the computer is able to

generate and grade. Because other computers are supposedly unable to solve the CAPTCHA, any

user entering a correct solution is presumed to be human. A common type of CAPTCHA

requires the user to type letters or digits from a distorted image that appears on the screen.

Dept. of ISE 11 T.C.E. Gadag.

Page 12: Report

GOOGLE CLOUD PRINT

A CAPTCHA is a means of automatically generating challenges which intends to:

Provide a problem easy enough for all humans to solve.

Prevent standard automated software from filling out a form, unless it is specially

designed to circumvent specific CAPTCHA systems.

A check box in a form that reads "check this box please" is the simplest form of a

CAPTCHA. This has the benefit of distinguishing humans from computers. It also creates

incentive to further develop artificial intelligence of computers.

CAPTCHAs are used in attempts to prevent automated software from performing actions

which degrade the quality of service of a given system, whether due to abuse or resource

expenditure. CAPTCHAs can be deployed to protect systems vulnerable to e-mail spam, such as

the webmail services of Gmail, Hotmail, and Yahoo! Mail.

CAPTCHAs are also used to minimize automated posting to blogs, forums and wikis,

whether as a result of commercial promotion, or harassment and vandalism. CAPTCHAs also

serve an important function in rate limiting. Automated usage of a service might be desirable

until such usage is done to excess and to the detriment of human users. In such cases,

administrators can use CAPTCHA to enforce automated usage policies based on given

thresholds. The article rating systems used by many news web sites are another example of an

online facility vulnerable to manipulation by automated software.

4.1.1 Authentication and Authorization for Google APIs

With programmatic authorization implemented, users can log into their Google account

and grant access to their Google service data from inside application. The application then

contacts Google with the login data and requests access to a specified Google service. Once

Google authorizes access, your application can access the Google service data, allowing the user

to create, read, update, or delete service data as needed using your application interface.

Dept. of ISE 12 T.C.E. Gadag.

Page 13: Report

GOOGLE CLOUD PRINT

4.1.1.1The ClientLogin Authorization Process

Authorization with ClientLogin involves a sequence of interactions between three

entities:

The Installed Application

Google Services and

The User.

This diagram illustrates the sequence:

1. When the third-party application needs to access a user's Google service, it retrieves the

user's login name and password.

2. The third-party application then makes a ClientLogin call to Google's Authorization

service.

3. If the Google Authorization service decides additional vetting is necessary, it returns

failure response with a CAPTCHA token and challenge, in the form of a URL for a

CAPTCHA image.

Dept. of ISE 13 T.C.E. Gadag.

Page 14: Report

GOOGLE CLOUD PRINT

Fig 4.1 ClientLogin Authentication Process

4. If a CAPTCHA challenge is received, the third-party application displays the CAPTCHA

image for the user and solicits an answer from the user.

5. If requested, the user submits an answer to the CAPTCHA challenge.

6. The third-party application makes a new ClientLogin call, this time including the

CAPTCHA answer and token (received with the failure response).

7. On a successful login attempt (with or without CAPTCHA challenge), the Google

Authorization service returns a token to the application.

8. The application contacts the Google service with a request for data access, referencing

the token received from the Google Authorization service.

9. If the Google service recognizes the token, it supplies the requested data access.

4.1.1.2 Using Client Login

Use this interface in your installed application to programmatically access a user's Google

account. After collecting login information from the user, call ClientLogin to request access to

the user's account. Once the login information has been successfully authenticated, Google

returns a token, which your application will reference each time it requests access to the user's

account. The token remains valid for a set length of time, which is defined by whichever Google

service you're working with.

Dept. of ISE 14 T.C.E. Gadag.

Page 15: Report

GOOGLE CLOUD PRINT

Incorporating ClientLogin into your application requires these tasks:

1. Create a UI element to capture login data from the user.

The UI (user interface) needs to solicit a user name (email address including domain) and

password. The UI should also be capable of displaying a CAPTCHA image using the URL

received from Google, if one is required, and soliciting a correct answer from the user.

Ideally, your UI will include a link to Google Accounts login page

("https://www.google.com/accounts/Login") in the event that the user needs to sign up for

a new account or do other account maintenance.

2. Write code to generate a well-formed HTTPS POST ClientLogin request and transmit

it.

This code needs to contain logic to handle a CAPTCHA challenge and include both

the logintoken and logincaptcha parameters. The application should also be able to detect

when the user omits required information--or repeats incorrect data after a login failure--

and display an error without sending a superfluous request.

3. Handle responses from Google.

There are four possible responses to a login request:

success (an HTTP 200)

failure (an HTTP 403) with an explanatory error code

invalid request, generally resulting from a malformed request

failure with a CAPTCHA challenge

A success response contains an authorization token labelled "Auth". This token must be

included in all subsequent requests to the Google service for this account. Authorization tokens

should be closely guarded and should not be given to any other application, as they represent

access to the user's account. The time limit on the token varies depending on which service

issued it.

A failure response includes one or more error codes and a URL with the error message

that can be displayed for the user. Please note that ClientLogin does not differentiate between a

Dept. of ISE 15 T.C.E. Gadag.

Page 16: Report

GOOGLE CLOUD PRINT

failure due to an incorrect password or one due to an unrecognized user name (for example, if the

user has not yet signed up for an account). Your application needs to handle all possible error

messages as appropriate.

A failure response with a CAPTCHA challenge means that Google has decided, for

whatever reason, that additional security measures should be taken. This response is

accompanied by a CAPTCHA image URL and a token representing the specific CAPTCHA

challenge.

4. Handle a CAPTCHA challenge from Google.

To handle the challenge, the application must display the CAPTCHA image and solicit an

answer from the user. To display the CAPTCHA image, use the value of Captcha

Url returned with the failure response, prefixing it with the Google Accounts URL:

"http://www.google.com/accounts/". Once the user provides an answer, the application

should resend the login request; this time including the CAPTCHA token (logintoken) and

the user's answer (logincaptcha). Google validates the user's answer before authorizing

access to the account.

There is an alternative for developers who do not want to manage the processes of getting

and transmitting a user CAPTCHA response. In response to a CAPTCHA challenge, the

application can direct the user to the Google hosted page:

"https://www.google.com/accounts/DisplayUnlockCaptcha". Once the user has

successfully responded to the challenge, the Google server trusts the computer in use. The

application can then resend the original login request to obtain the authorization token.

4.1.1.3 The ClientLogin Interface

ClientLogin uses standard security measures to protect user account information. To

block bots and other entities from breaking user passwords, Google Accounts may add a visual

CAPTCHA to the authentication process; this usually happens when the server suspects an

Dept. of ISE 16 T.C.E. Gadag.

Page 17: Report

GOOGLE CLOUD PRINT

illegal intrusion, such as after too many incorrect login attempts. A CAPTCHA ensures that a

real person is trying to log in.

ClientLogin can be used to authorize access to both Google regular and hosted accounts.

A hosted account is a user account that is part of the Google Apps service.

NOTE: ClientLogin does not support service sign ups or other account maintenance tasks. Users

must have an existing account before using this feature. If a user tries to log in without an

account, this interface returns a "login failed" response. In addition, if other account maintenance

steps--such as email verification or acceptance of terms--are not completed, the login attempt

fails.

ClientLogin

ClientLogin can be used with any application that can make an HTTPS POST request. The POST request should be structured as a form post with the default encoding application/x-

www-form-url encoded. Parameters should be included in the body of the post.

Action URL parameter: https://www.google.com/accounts/ClientLogin

Parameter Description

accountType Type of account to request authorization for. Possible values are:

GOOGLE (get authorization for a Google account only) HOSTED (get authorization for a hosted account only) HOSTED_OR_GOOGLE (get authorization first for a hosted account; if attempt fails, get authorization for a Google account)

Use HOSTED_OR_GOOGLE if you're not sure which type of account you want authorization for. If the user information matches both a hosted and a Google account, only the hosted account is authorized.

Email User's full email address. It must include the domain (i.e. [email protected]).

Dept. of ISE 17 T.C.E. Gadag.

Page 18: Report

GOOGLE CLOUD PRINT

Passwd User's password.

Service Name of the Google service you're requesting authorization for. Each service using the Authorization service is assigned a name value; for example, the name associated with Google Calendar is 'cl'. This parameter is required when accessing services based on Google Data APIs. For specific service names, refer to the service documentation.

Source Short string identifying your application, for logging purposes. This string should take the form:"companyName-applicationName-versionID".

Logintoken (optional) Token representing the specific CAPTCHA challenge. Google supplies this token and the CAPTCHA image URL in a login failed response with the error code "CaptchaRequired".

Logincaptcha (optional) String entered by the user as an answer to a CAPTCHA challenge.

Table 4.1 Action URL parameters

ClientLogin response

In response to a login request, Google returns either an HTTP 200, if login succeeded, or

an HTTP 403, if login failed.

A success response contains the authorization token, labelled "Auth", in the body of the

response. Application must reference this token in each request to the Google service for this

user.

A failure response contains an error code and a URL to an error page that can be

displayed to the user. If the error code is a CAPTCHA challenge, the response also includes a

URL to a CAPTCHA image and a special token. Application should be able to solicit an answer

from the user and then retry the login request. To display the CAPTCHA image to the user,

prefix the CaptchaUrl value with "http://www.google.com/accounts/", for example:

http://www.google.com/accounts/Captcha?ctoken=HiteT4b0Bk5Xg18_AcVoP6-

yFkHPibe7O9EqxeiI7lUSN".

Error Code

Dept. of ISE 18 T.C.E. Gadag.

Page 19: Report

GOOGLE CLOUD PRINT

Error code Description

BadAuthentication The login request used a username or password that is not recognized.

NotVerified The account email address has not been verified. The user will need to access their Google account directly to resolve the issue before logging in using a non-Google application.

TermsNotAgreed The user has not agreed to terms. The user will need to access their Google account directly to resolve the issue before logging in using a non-Google application.

CaptchaRequired A CAPTCHA is required. (A response with this error code will also contain an image URL and a CAPTCHA token.)

Unknown The error is unknown or unspecified; the request contained invalid input or was malformed.

AccountDeleted The user account has been deleted.

AccountDisabled The user account has been disabled.

ServiceDisabled The user's access to the specified service has been disabled. (The user account may still be valid.)

ServiceUnavailable The service is not available; try again later.

Table 4.2 Error Codes

4.2 Sync The Printer’s Status And Capabilities To The Cloud.

4.2.1 Syncing with the GCP Registry (/list)

As a first step whenever the printer comes online, it should check with the Google Cloud

Print service and sync the printer’s status and capabilities with the listing in the cloud. This way

Dept. of ISE 19 T.C.E. Gadag.

Page 20: Report

GOOGLE CLOUD PRINT

the client does not need to maintain state with regards to what has been registered, and needs to

retain only the Auth token provided when the user authenticated.

The printer should call the List API using a proxy id (required) that the printer provides. The

proxy id should be a unique attribute of the printer and is the only piece of information besides

the Auth token that the printer needs to retain state with. The /list call will return a response with

a success bit, and if the request was successful a list of printers.

The printer returned by the /list function will contain attributes for the printer’s display name

and id. The printer id is the key provided by Google Cloud Print by which you will fetch and

manage jobs in the cloud. Optionally, the List API will also accept an object parameter

specifying printer capabilities that should be included in the response object.

 4.2.1.1 Object Parameter Specifying Printer Capabilities

Common Output Control Parameters and Values

These are the common parameters accepted by all the interfaces used by the proxy to control the

output:

output

Controls the output format, which can be one of the following:

json

xml

text

objects

Controls the granularity of the output:

Dept. of ISE 20 T.C.E. Gadag.

Page 21: Report

GOOGLE CLOUD PRINT

capabilities: Dump the capabilities of the printer and print job options selected.

all: Dump all the objects available for the output.

4.2.2 Registering a Printer

If a printer is not returned in the /list response, it can register itself using the Register API to

report it’s capabilities to Google Cloud Print. To register a printer you submit a user readable

name (required), your printer’s proxy id (required), a set of capabilities (required) and a set of

defaults in either Microsoft XML Print Schema or PPD, strings for the printers description and

status, and finally a hash value over the set of capabilities for easy comparison to see if they’ve

changed since last update. Since the Microsoft XML Print Schema and PPD files are probably

too large to URL encode, you’ll want to submit them via multi-part http request.

4.2.3 Updating a Printer

If a printer has already been registered but information about it has changed, because of

errors, upgrades or breakdowns, you can use the Update API to rewrite any of the fields that

were set on registration. The call to /update is the same as a call to /register, plus an additional

parameter for the printer id (required) to be updated. However rather than returning a response

object listing the printer and its id, /update will return only a Boolean success flag and an

explanatory message.

4.3 Handling Print Jobs

4.3.1 Receiving print notifications

Notifications of waiting jobs will be distributed to printers using a persistent XMPP connection. The printer should initiate this connection with the Google Talk XMPP servers and

Dept. of ISE 21 T.C.E. Gadag.

Page 22: Report

GOOGLE CLOUD PRINT

This will require another ClientLogin token, this one for the talk service(service=chromium sync). For development purposes or for printers with at-device authentication the notification step can be skipped. Final production printers should not rely on frequent polling, however, as Google Cloud Print may throttle excessive use of the /fetch protocol.

4.3.2 Fetching Print Jobs

Whenever the printer comes online or receives notification of a waiting job, it should use

the Fetch API to grab any available jobs in the queue. The /fetch call takes the printer id

(required) as a parameter and returns the list of available jobs in the Queued state. Each job has

an id, a title, a status, and two URLs: one for the job ticket (in either Microsoft XML Print

Schema or PPD format, determined by the format in which the printer originally registered it’s

capabilities) and one for the job file itself. For now the job is rendered into a pdf format - in the

future we plan to support additional raster formats based on demand.

4.3.3 Processing Print Jobs

As the printer completes jobs or encounters errors it can use the Control API to update the

status of jobs for relay back to the user. The /control request takes as parameters a job id

(required) and a status (SPOOLED, ERROR or DONE) as well as parameters for the error code

and error message as returned by the printer OS. The /fetch protocol will only return jobs in the

QUEUED state. The response will contain a success flag and an explanatory message.

Authorization with the ClientLogin API is a step up from the "low-tech" approach, which

required applications to include the user's login name and password in every request to a Google

service. With programmatic login, Google issues a token that can be referenced in all subsequent

requests. This approach offers several advantages, including:

Performance is improved because login data is validated only once per session

instead of with each request.

Security is tightened by minimizing the number of times login data is transmitted

per session.

Dept. of ISE 22 T.C.E. Gadag.

Page 23: Report

GOOGLE CLOUD PRINT

The authorization process can incorporate additional security measures, such as

the use of CAPTCHAs.

Authorization measures can be more easily enhanced and extended as required.

Here are few points which make Google Cloud Print user friendly :

Google Cloud Print can print to your cloud ready printers, such as the ePrint line from

HP. Google Cloud Print can also connect to your classic printers using Google

Chrome for Mac or Windows.

To connect your HP ePrint printer to Google Cloud Print, just submit your printer's email

address.

To connect your classic printer, you will need to install Google Chrome on a Mac or

Windows computer that's connected to your printer. Once installed, enable the Google

Cloud Print connector in Google Chrome.

If your printer can’t be reached at the time you submit your print job (e.g. the computer

running the Google Cloud Print connector is turned off), your job will wait in the print

queue in the cloud. Your printer will download and print the job normally as soon as it

comes back online.

For your printer to be connected to the Google Cloud, you must be logged into your

Windows user account. Just as when your printer is offline, if you are using the Google

Chrome proxy and your Windows user account is logged off, jobs will be saved and

fetched normally when you log back in.

If you delete your printer by mistake or change your mind later, you can re-connect all

the printers on your local device by signing back into Google Cloud Print.

Google Cloud Print jobs are submitted and retrieved over https, and are available only to

you and to the printer you submitted the job to.

If documents are not printing:

Make sure your Google Cloud Print connector is running on a computer with Mac

or Windows (Linux support coming soon!).

Dept. of ISE 23 T.C.E. Gadag.

Page 24: Report

GOOGLE CLOUD PRINT

If you are using Windows XP , make sure you have the Microsoft XML paper

specification pack installed.

Confirm that the computer connected to your printer is powered on and that you

are logged in.

It keeps copies of all the documents but only for so long as the printing job is active and

not complete. We have to do this to make sure your document gets printed. Once the job

is complete, the document is deleted from our servers.

Google keeps information about the print job in question (the job title, the printer you

sent it to, printer status information) as a record, along with your Google Account ID. We

need this information in order to process the jobs you send for printing, and to allow you

to view and edit your printing history through the Cloud Print dashboard.

Documents you send to print are your personal information and are kept strictly

confidential. Google does not access the documents you print for any purpose other than

to improve printing.

You can see and edit these records through the Cloud Print dashboard at any time.

CHAPTER 5

Service Interfaces

Google Cloud Print service interfaces are used by a cloud print proxy. This proxy is a

piece of software that enables any printer to register itself with Google Cloud Print, that runs on

a computer connected to a non-cloud-aware printer a web service for printing. Once the printer is

registered with the service, it can then receive jobs from and communicate status with Google

Cloud Print. Use of Google Cloud Print enables platform- and format-independent printing.

The proxy needs to authenticate the user's Google Account to communicate with Google

Cloud Print for adding printers and getting the print jobs. This is done by using Clientlogin API.

5.1 Google Cloud Print Interface Reference

Dept. of ISE 24 T.C.E. Gadag.

Page 25: Report

GOOGLE CLOUD PRINT

The following diagrams show the typical sequence of calls made by a cloud print proxy

to register a printer and its attributes with Google Cloud Print, update this printer data, list all

current printers registered for a given user, and delete a printer from the list of registered printers.

Other interfaces allow a proxy to communicate current status of a print job (the control interface)

and to fetch the next available job from Google Cloud Print for a specified printer.

5.1.1 Print Management

/Register

This interface lets the proxy register printers. This should be an HTTP multipart request,

since the request needs to upload significantly large printer capabilities and defaults file data.

The capabilities and defaults parameters can be in XPS (XML Paper Specification) or PPD

(Postscript Printer Description) formats. 

Parameters

Printer: User readable name of the printer being registered (need not be unique).

Proxy: Identification of the printer client or proxy (must be unique).

Capabilities: Printer capabilities (XPS or PPD)

Defaults: Printer default settings (XPS or PPD).

Status: Status string of the printer—e.g., Out of Paper, Online, etc.

Description: Descriptive string about the printer.

capsHash: A hash or digest value of the capabilities data. This value is useful, for example,

to compare values and check whether the local printer's capabilities have changed.

Dept. of ISE 25 T.C.E. Gadag.

Page 26: Report

GOOGLE CLOUD PRINT

Fig 5.1 Sequence of Calls Made By A Cloud Print Proxy

/Update

This interface enables the proxy to update various attributes and parameters of the printer

registered with Google Cloud Print.

Parameters

Printerid: Unique printer identification (generated by Google Cloud Print).

Printer: User readable name of the printer being registered (need not be unique).

Proxy: Identification of the printer client or proxy (must be unique).

Capabilities: Printer capabilities (XPS or PPD).

Defaults: Printer default settings (XPS or PPD).

Dept. of ISE 26 T.C.E. Gadag.

Page 27: Report

GOOGLE CLOUD PRINT

Status: Status string of the printer—e.g., Out of Paper, Online, etc.

Description: Descriptive string about the printer.

capsHash: A hash 

/Delete

This interface enables the proxy to delete a printer from Google Cloud Print.

Parameters

Printerid: Unique printer identification (generated by Google Cloud Print).

/List

This interface provides a listing of all the printers for the given user. It can be used by the

proxy to compare the printers registered and available locally. If the proxy is connected to

multiple printers, this interface is useful to keep the local printers and printers registered with

Google Cloud Print in sync. With this interface, the proxy does not need to maintain a state or

mapping of the local printers and needs to store only the unique proxy ID required as a

parameter.

Parameters

Proxy: Identification of the proxy, as submitted while registering the printer.

Dept. of ISE 27 T.C.E. Gadag.

Page 28: Report

GOOGLE CLOUD PRINT

Fig 5.2 GCP Service Interface Reference

5.1.2 Job Management

Google Talk XMPP Server

Google Cloud Print can provide print job availability notification through Google Talk,

using a persistent XMPP connection. The proxy should initiate this connection to Google Talk

XMPP servers and subscribe to the printing notification. This XMPP connection also needs an

authentication token as with the HTTP requests.  The proxy can use frequent polling of available

jobs using the /fetch interface.

Fetch

This interface is used by the proxy to fetch the next available job for the specified printer.

Parameters

Printerid: Unique printer identification (generated by Google Cloud Print).

Dept. of ISE 28 T.C.E. Gadag.

Page 29: Report

GOOGLE CLOUD PRINT

Control

Parameters

Jobid: Unique job identification (generated by server).

Status: Status of the job, which can be one of the following:

QUEUED: Job just added and has not yet been downloaded.

SPOOLED: Job downloaded and has been added to the client-side native printer

queue.

DONE: Job printed successfully.

ERROR: Job cannot be printed due to an error.

Code: Error code string or integer (as returned by the printer or OS) if the status is

ERROR.

Message: Error message string (as returned by the printer or OS) if the status is ERROR

The following diagram shows the transitions between the four job status states:

Fig 5.3 Job Status State Transitions

Dept. of ISE 29 T.C.E. Gadag.

Page 30: Report

GOOGLE CLOUD PRINT

CHAPTER 6

ADVANTAGES

Google associate printers with a Google account and manage them the same way

as you manage Google Docs documents, so you can share them with other people.

Web applications can use APIs to customize the printing options and change the

user interface displayed when you start printing a document.

"It is believed cloud printing has tremendous benefits for end users and for the

industry and is essential, given the rapid shift toward cloud-based applications and

data storage. We also believe that the only way that the benefits of cloud printing

can be realized is if the protocols are open, freely implementable, and, when

possible, based on existing industry standards. We expect there to be multiple

cloud print services, and users should have a choice in which services they use

and which printers they can connect to a service ".

Google Cloud Print makes the mobile printing experience easier for users.

Configuring Chrome, adding printers and printing are simple, despite a few

reports of failed print jobs.

Google Cloud Print is printer-manufacturer-neutral: users can send a job to any

printing device that has been added to the service through Chrome.

Access to printers anywhere anytime.

Works with all types of devices

No need of driver software.

No need of any network configuration.

Any type of document can be printed.

Saves time and cost

Dept. of ISE 30 T.C.E. Gadag.

Page 31: Report

GOOGLE CLOUD PRINT

CHAPTER 7

LIMITATIONS

However, this beta release has several limitations that will constrain adoption until they are

addressed:

Users can only print e-mails and attachments from mobile Gmail, and documents from

mobile Google Docs. Google told Gartner that future releases will integrate with more

Google services, and offer APIs to connect to third-party products.

Consumers will need to keep their PCs switched on for jobs to print, because their PCs

will be hosting the cloud connector. For enterprise users, the connector can be deployed

on the print server.

Cloud Print works via the latest beta of Google Chrome Windows and Macintosh only.

Google says it will support other operating systems at some point in the future, but gave

no timeline.

Cloud Print does not use location-based technology to identify available printers, limiting

its usefulness when the user is "out and about" and seeking a nearby printer.

The tokens returned by ClientLogin expire every 28 days and require reauthentication.

Still research is going to overcome this.

Dept. of ISE 31 T.C.E. Gadag.

Page 32: Report

GOOGLE CLOUD PRINT

CHAPTER 8

CONCLUSION

While it’s still very early in the life of Google Cloud Print, so far it shows some promise.

The biggest thing going for it so far is that it’s very easy to setup. The whole process from setup

to print took us no more than a few minutes. One of the things going against it however, is its

lack of ubiquity. The fact that you have to use Chrome will be a problem for the 90% of Internet

users who use something else other than Chrome. If other browsers like IE or Firefox adopted

this, then a lot more users would be able to get in on the action. Additionally, it’s nice that it’s

out for Windows PC users, but Linux users are currently being left out.

That said, it’s great to see Google tackling this problem. As mobile phone use continues

to grow and as more and more tablets start to be released into the wild, it’s nice to know there is

an option out there to print your documents from your mobile device without having to spend

money on a new printer.

It may seem that Google's solution is complicated and difficult to implement: we need an

open standard for cloud printing, cloud-aware printers and users need to associate printers with

an online service. Instead of sending the printing job directly to the printer, you'll send it to the

online service, which forwards it to the printer. Despite all these hurdles, Google Cloud Print

allows you to print documents from a mobile phone, tablet, notebook or any other mobile device.

You'll be able to print files from an Android phone or tablet, from a Chrome OS computer, from

any computer that runs Google Chrome and from other devices that will support Google Cloud

Print. 

Dept. of ISE 32 T.C.E. Gadag.

Page 33: Report

GOOGLE CLOUD PRINT

CHAPTER 9

REFERENCES

http://www.google.com/cloudprint/interface/

downloadsquad.switched.com

readwriteweb.com

http://googleappsupdates.blogspot.com/2011/01/print-from-your-phone-with-

gmail-for.html

http://www.google.com/support/cloudprint/?hl=en

http://www.google.com/cloudprint/

PCworld.com

http://jai-on-asp.blogspot.com/2011/03/google-cloud-print-cloud-computing-

in.html?

Dept. of ISE 33 T.C.E. Gadag.