Documente Academic
Documente Profesional
Documente Cultură
07.12.2009
Contents
1. Introduction ........................................................................................................................ 2 2. Service Oriented Architecture............................................................................................ 2 3. Google Apps....................................................................................................................... 2 4. Google app engine.............................................................................................................. 3 4.1 4.2 Google app engine for Python .................................................................................... 3 Google app engine for Java ........................................................................................ 4
5. Google Data Protocol......................................................................................................... 4 6. Google Apps APIs.............................................................................................................. 5 6.1 6.2 6.3 Management APIs....................................................................................................... 5 App-specific APIs....................................................................................................... 7 Using APIs.................................................................................................................. 8
1. Introduction
This document is made as an assignment to the Service Oriented Communications course in Lappeenranta University of Technology. In this paper we will first briefly cover the principles of service oriented architecture then describe Google apps, Google app engine, Google data protocol and finally discuss how Googles services fit in to the SOA paradigm.
3. Google Apps
Google provides an extensible online service suite called Google apps. Google apps include services for communication and collaboration as follows:
Communication: Gmail, an unified communication application with email, instant messaging, voice and video communication. Gmail offers features such as spam filtering, large data storage (up to 25Gb with premium edition), offline client and migration tools for Microsoft Outlook and Lotus Notes. Google calendar, calendar application that supports scheduling appointments, shared projects, most mobile devices and a publishing feature.
Collaboration: Google docs, web-based application suite that includes documents, spreadsheet and presentations. Google docs works in the browser and offers the users flexibility to work regardless of their operating system or hardware setup. The same document can be accessed by multiple users at the same time permitting real-time collaboration. Supports popular file formats such as .doc, .ppt, .xls and pdf. Google sites, a tool for creating collaborative sites. Easy to use tool for setting up intra-/extranets and project sites. Sites can be build from templates without coding. Google videos, a service for hosting and streaming videos. Google Talk, instant messaging and voice conversation platform for easy and quick communication with friends and colleagues.
4 for the applications to communicate over the internet and to store data. Datastore and memcache are provided for storing data: datastore for persistent data storage and memcache for fast caching of responses to queries and calculations. Google app engine for python uses GQL query language or query interface to retrieve entities from datastore. Communication over the web is done using http or https protocols using some of the standard Python modules or app engine Fetch service API. Applications can also use Python mail API to send and receive email. Authentication services for the applications are handled by the Google Accounts API. Scheduled tasks can be done with the Cron service for Python. Image data is processed with the images service that allows for manipulating of image data in multiple formats. (www.code.google.com, 2009). Google provides developers with the app engine Python service development kit (SDK). With the tools included a developer can run his applications locally on his computer for test purposes. Other features in the development kit allow for uploading data to the datastore, uploading the application to the app engine service, managing datastore indexes and downloading log data from the service. (www.code.google.com, 2009).
5 Data Syntax: Google Data Protocol is based on (and extends) various syndication standards such as Atom 1.0, RSS 2.0 and Atom Publishing Protocol (APP). Therefore, o Google Data Protocol uses HTTP-layer as default method for handling the communication (sending and receiving information between the services). o GDP uses XML (eXtensible Markup Language)-standard in the format of Atom-feed to give the information a structure. XML and Atom defines e.g. type-attribute of the information (such as HTML, Text, XHMTL) Element definitions Metadata definitions of the information o Information sent is collected to AtomPub items..
Google Data API (application programming interface) is standard interface which is used in every single more specialised API within Google Services.
6 SSO (Single Sign-On) Service Google Apps SSO service uses XML-based SAML (Security Assertion Markup Language) standard for exchange of user authentication and authorization data between secure web domains. With SAML, service providers can contact different online service provider to authenticate users who are trying to get an access to secure location. In Google-SSO and SAML concept (figure 1), Google acts as a service provider who offers services such as e-mail (Gmail) or intranet-style web-pages (Google Sites). Partners of Google act as identity provider who control user information, usernames, password and other information used to identify, authenticate and authorize users for services that Google offers. Google uses also a variety of different open source and commercial identity provider solutions which help implement SSO with Google Apps.
8 The purpose of domain shared contacts API is to provide possibility for users to import external contacts that are shared to all Google Apps domain users. Shared contacts are visible to every user in the domain and all Google services have access to these contacts. User Profiles API With User Profiles API, client applications can update and retrieve user profiles in the Google Apps domain. Calendar Data API Google Calendar Data API allows users with client applications to manage calendar events in the form of Google Data API feeds. Sites Data API Google Sites API allows users to modify and manage Google Sites Data in the form of Google Data API feeds. Users can use client applications to create and modify the contents of the corporate Google Site, up- and download files, review version history and display user activity history.
9 Gartner lists the benefits to enterprise IT from SOA as follows (Natis, 2003): Incremental development and deployment of business software Reuse of business components in multiple business experiences Low-cost assembly of some new business processes Clarity of application topology
And the mistakenly SOA attributed benefits: Simple software engineering Free integration or interoperability Technology independence Vendor independence The ultimate architecture for the modern enterprise
As with the Gartner study cited above SOA is seen and discussed mostly in business context. Google on the other hand targets and involves the end user as well as businesses. There is a distinct effort in Googles part to reach out to the masses of internet users. From the SOA service principles (Erl, 2008): Standardized service contract Service loose coupling Service abstraction Service reusability Service autonomy Service statelessness Service discoverability Service composability
From our perspective, Google adheres to following principles: loosely coupled services, abstraction, reusability, autonomy, discoverability and composability. Google uses XML, Atom, APP, HTTP and JSON standards which all are internationally developed and standardized. Google Service APIs are not grounded to special programming languages: they can be used with Java, .NET, PHP and Python. This adheres to abstraction principle of SOA principles. Only counteracting property in the autonomity of Google Services is that someone (preferably every user of the services) has to have Google account to be able to use the services. Otherwise, Google Services are very autonomous and interoperable to legacy- and partners systems and services. The discoverability of Google Services comes from the use of programming-language specific client libraries, which have to be downloaded before using them. Discoverability is not as efficient as in e..g. Web Services, but still very usable.
10
When examining the Google approach from the business perspective, Googles services are very well thought of. Google can offer their services to individual users and education organizations for free, and the price for companies is not high. This is due to the popularity of Google Search engine, business and personal services. The popularity of these services wouldnt perhaps be so overwhelming if the services offered wouldnt be designed that way that; a) they are easy to use, b) they are extensible and c) they are easily integrated and combined to other services, legacy systems and to each others. Very good examples of good services of Google are the Google AdWords and AdSense. With AdWords and AdSense corporations and individuals can advertise their products and services either directly in Google Search Engine results or make some money by attaching the AdSense-service to their websites. Ad-Services are very easy to use and attach to existing code that is one factor explaining the popularity of Google Services.
11 The following figures 5. and 6. illustrate the similarities in SOA and Google services structure.
12
References:
Reference Model for Service Oriented Architecture 1.0. 2006. OASIS Open. 31s. http://docs.oasis-open.org/soa-rm/v1.0/soa-rm.pdf Schroth, C. Christ, O. IEEE International Conference on Services Computing, 2007, Brave New Web: Emerging Design Principles and Technologies as Enablers of a Global SOA, 9-13 July, s. 597 604 Wikipedia, 2009. Representational State Transfer. From: http://en.wikipedia.org/wiki/Representational_State_Transfer 09.12.2009 http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid), 08.12.2009 Google, 2009. Google Apps. From: http://www.google.com/intl/fi/apps/business/index.html 09.12.2009 Google 2009. Google Apps APIs. From: http://code.google.com/intl/fiFI/apis/apps/overview.html 09.12.2009