Google Summer of Code 2008


For this year's Google Summer of Code, I applied to two projects from the Tuscany incubator project of the Apache Software Foundation. I was selected to get Apache Tuscany (SCA) running on Google's new mobile phone platform - Android. I worked with Adriano Crestani, from the Apache Tuscany project, as my project mentor.

My selected proposal can be found here:

Allow Google Android applications to easily consume business services

The abstracts are shown below and the full proposals can be found in the following links:

Allow Google Android applications to easily consume business services

Integrate Google services in SCA compositions

Allow Google Android applications to easily consume business services

sub-title: Incubating an Android in Delft

Abstract

The new Android platform from Google provides an operating system, middleware and base applications for mobile devices. Such a framework is ideal for the consumption of mobile services, from which a considerable amount will likely be business services. Google released the platform’s SDK for developers around the world to create great new powerful applications that are innovative and make use of the unique functionalities in Android. Among those novel features are location-based services, accelerometer, and always-on networking. Additionally, access to Google APIs and services enables the creation of compelling applications capable of tapping into Google’s vast resources. By concentrating on those Google services that support the Google data API, developers enjoy the benefits of simple, standard and ubiquitous protocol semantics. Reading and writing data for those services on the web is standardized by means of the Atom and RSS syndication formats which are extended through the GData protocol.

Furthermore, Google services that support the Google data API benefit from the REST based approach of data access, treating everything as a resource that can be manipulated through a reduced set of HTTP verbs: GET, POST, PUT and DELETE. Such services could also benefit from a service-centric concept like Service Oriented Architecture. As a system architecture concept, SOA provides the “normative restriction of design freedom”[1] and a set of design principles that are sufficient and necessary to implement (business) services and service-based application networks. A constructional model is useful for building applications and systems based on SOA. The Service Component Architecture set of specifications describes such an implementation model and extends prior implementation efforts by including open standards such as web services.

The Apache Tuscany incubator project implements the SCA specification and enables developers to create service components and to assemble components into applications called composites. Such applications in Android can be assembled out of Google services available as SCA components, provided that Android has a thin SCA core/runtime to perform such assemblies – allowing applications to easily consume business services. Such assemblies, like applications and services in Android, would be centered on interactions, as virtually every task in Android is performed through intents that are issued as application state changes. These intents encourage reusing and replacing software and service components used in interactions. This essentially means that any intent that is fulfilled by a software component can be substituted by a service component or vice-versa. Reusing and assembling, not so much replacing, software and service components is the focus of this project proposal. It is hoped that assembling software and service components results in even richer functionality for the Google Android platform.

For this project to be successful the SCA core/runtime must be ported to the Android platform. Efforts are already underway in the community, and benefits of the simplicity achieved through a lightweight SCA core/runtime have been identified. Part of the challenge is to identify a subset to port and cut corners where necessary to achieve as lightweight a core/runtime as possible. Another part of the challenge is to come up with interesting scenarios and use cases where consumption of business services through composition would prove useful. The main project activities are summarized below:

  • Identify subset of SCA to port into lightweight mobile SCA core/runtime
  • Port SCA into lightweight mobile SCA core/runtime
  • Cut corners where necessary, ie. Iterate
  • Identify, document and test possible uses cases and scenarios that demonstrate the consumption of business services
  • References

    [1] Dietz, J.L.G., Hoogervorst, J.A.P.: Enterprise Ontology and Enterprise Architecture - how to let them evolve into effective complementary notions, GEAO Journal of Enterprise Architecture, vol.2 nr.1, March 2007

    Integrate Google services in SCA compositions

    sub-title: Google Services in Apache Tuscany: from Atom to Molecules

    Abstract

    Google services that support the Google data API enjoy the benefits of simple, standard and ubiquitous protocol semantics. Reading and writing data on the web is standardized by means of the Atom and RSS syndication formats which are extended through the GData protocol. Google services benefit from the REST based approach of data access, treating everything as a resource that can be manipulated through a reduced set of HTTP verbs: GET, POST, PUT and DELETE. Such services could also benefit from a service-centric concept like Service Oriented Architecture. As a system architecture concept, SOA provides the “normative restriction of design freedom”[1] and a set of design principles that are sufficient and necessary to implement (business) services and service-based application networks. A constructional model is useful for building applications and systems based on SOA. The Service Component Architecture set of specifications describes such an implementation model and extends prior implementation efforts by including open standards such as web services.

    The Apache Tuscany incubator project implements the SCA specification and enables developers to create service components and to assemble components into applications called composites. By turning Google services into SCA components developers can compose new applications out of these services. Users can assemble SCA components to create novel applications, for instance on Google’s new Android platform. Extending the reach of such compositions to include external, perhaps legacy, services can broaden the possible types of applications and interactions achievable through SCA. The resulting composite applications and the components and services from which they are assembled are the focus of this project proposal.

    To make this project successful many services must be integrated and made available. The most sensible services to include are those that support the Google data API, GData. The standard Atom and RSS-based data formats, plus the Atom Publishing Protocol, and GData format and protocol extensions, enable simple yet powerful services potentially consumable through SCA. In order to support these services, the base Atom support in Tuscany must be extended to support GData; this is the first deliverable of this project. Google services will then be definable through SCA components. Such components must have the ability to be clients of GData feeds published by other components and to publish GData feeds of their own. Once the components can be smoothly integrated, including native GData conversations, they can be made available in a library; this is the second deliverable.

    All service and component interactions, for instance as part of composites, must be done securely. Authentication, for instance, is a central part of the GData protocol – services or applications acting on behalf of a particular user need to be authenticated for interactions to transpire. These interactions include possible service conversations. On the other hand, the SCA Security Model includes a Policy framework that defines intents for authentication, confidentiality and integrity. These intents specify the interactions between clients and servers inherent to services provided over the web, such as those from Google. Attaching both security frameworks together is the third deliverable of this project. The main project activities are summarized below:

  • Extending Tuscany Atom support to support GData
  • Creating a library of SCA components for the main Google services
  • Hooking the GData security features with SCA security policies
  • Identify, document and test possible uses cases and scenarios that demonstrate the integration of Google services in SCA
  • References

    [1] Dietz, J.L.G., Hoogervorst, J.A.P.: Enterprise Ontology and Enterprise Architecture - how to let them evolve into effective complementary notions, GEAO Journal of Enterprise Architecture, vol.2 nr.1, March 2007

    Valid XHTML 1.1!


    ocastaneda@apache.org