Google Summer of Code Proposal: Integrate Google services in SCA compositions
Oscar Castañeda: <oscar.castaneda AT gmail DOT com> | <o.v.castanedavillagran AT student DOT tudelft DOT nl>
Google Services in Apache Tuscany: from Atom to Molecules
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” 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
 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
Benefits to the Community
In my opinion, the open source community will greatly benefit from the integration of Google services into SCA compositions. By extending Tuscany Atom support to support GData, it becomes possible to compose applications out of Google services. Such applications can be extended by including functionality from external, perhaps legacy, services. Through platforms like Android, in addition to web browsers, it becomes possible to assemble SCA components for consumption of (business) services. The key benefits of SCA, loose coupling, flexibility, (a)-synchronous services, composition and productivity, are translated directly into a widely adopted set of Google services. The Apache Software foundation, by incubating Tuscany, is preparing to release yet another key technology driving innovation on the web. This is a first-rate benefit to the open source community that increases awareness and adoption.
I envision a future of open source services created by groups of individuals pursuing a common set of goals and possibly with the same set of beliefs. Such services would be created in an environment of open communication and collaboration, much like the way software has been created for years in open source projects and to a similar extent how services have been created by Google. Furthermore, the principles and philosophy of open source would drive efforts to produce these so-called open services, with the cooperation of individuals, corporations, universities and governments. Countless applications would arise out of such efforts. Society at large would benefit. The grass-roots capabilities needed to drive these efforts are largely based on open source principles and are developed through projects such as the integration of Google services in SCA compositions.
Google and the Apache Software Foundation, through the Tuscany incubator project, will be proud of the success of their efforts. I stand to contribute to this great project and learn from the experience. Not only this, but I will have the great opportunity to be a part of Open Source, to experience the culture through a project from one of its most notable organizations, the Apache Software Foundation. The chance to participate in an Open Source project that completely matches one's interests and that is at a most favorable time in its development only comes by once in a while. I want to make the best out of this fantastic juncture, I want to be a part of it.
The following breakdown structure includes the milestones, deliverables and duration of activities. The project has been divided into 5 stages that range from getting familiar with Tuscany to actually delivering code and applicable use cases. It is worth noting that one of the deliverables is a Use case that demonstrates the composition of service components, this is different from the demo at every stage which is meant to help drive the development through part of a usage scenario. The Use case will be developed through the first 3 stages. An initial idea is given in the 'Use Case' section. It is also worth noting that there might be some iteration between stages 1 through 3.
Stage 0: Introductory research and testing
- Milestone: Acquired familiarity with the project.
- Deliverable: Installed and tested latest Tuscany build. Reviewed documentation. Tested demo cases.
- Mini scenario / demo: Experiment with Calculator example, assemble composition of components
- Duration: 1 week: May 26th – June 2nd
Stage 1: GData support
- Milestone: GData protocol and format supported in Tuscany Atom base
- Deliverable: Extended Tuscany Atom support that supports GData
- Mini scenario / demo: Test Google Base data API functionality
- Duration: 4 weeks: June 2nd – June 30th (+ 1 week fallback)
Stage 2: SCA component library
- Milestone: Google services as SCA Components accessible through GData
- Deliverable: Library of SCA components for the main Google services
- Mini scenario / demo: "Wrap" Google services in SCA and test functionality
- Duration: 3 weeks: June 30th – July 21st (+1 week fallback)
Midterm evaluation: Between July 7th and July 14th
Stage 3: Security
- Milestone: Authentication through GData
- Deliverable: SCA Security policies Hooked to GData security features
- Mini scenario / demo: Test authentication for Google services
- Duration: 3 weeks: July 21st – August 11th (+1 week fallback)
Stage 4: Use case(s)
- Milestone: SCA Composition of integrated Google services available in library
- Deliverable: Use case(s)
- Mini scenario / demo: Demo Use case
- Duration: 2 weeks: August 11th – August 25th (+1 week fallback)
Stage 5: Final revision
- Milestone: Code working after revision
- Deliverable: Scrubbed code, final tests and documentation
- Mini scenario / demo: Final Demo of Use Case
- Duration: 1 week: August 25th – September 1st
Final evaluation: Between August 25th and September 1st
Use Case for Google service Compositions
The project will rely on a Use Case for student use of Google services. This important part of the project will help to demonstrate value through a practical use of service compositions. Additionally, it will help to drive development efforts through a usage scenario that provides a context for technical issues and a big picture to keep in mind. The idea comes from a challenge I've faced as a student and involves the use of Google services, it is briefly stated below and will continue to be worked on throughout the project.
Use Google services to:
- Create a group assignment (eg. an essay); this involves a group of people working together on a Googledoc, collaborating through email and requires agreement of meeting time(s) and location(s) of a group of students. Results are posted on a blog including pictures of the group participants.
This can involve Google Groups, Docs, Gmail, Calendar, Apps, Notebook, Web Albums, Blogger, and others. A subset of these support GData.
Simpler versions of this Use Case involving few(er) services can provide a starting point. For example, agreeing on a set of meeting times and locations could involve only Google Calendar and Maps services. The outcome of a composition involving these two services could be an annotated map.
I have already started researching possible uses of Tuscany. In doing so I installed Tuscany from its binary distribution and also built it from source. Additionally, I have started communicating on the developer mailing list. Continuing my efforts during GSoc I plan to utilize the following resources:
MacBook (2Ghz Core Duo, 1GB RAM, 80GB HDD)
Windows XP Virtual Machine running on MacBook
- Laptop with Windows XP and Ubuntu 7.10 (Dual-boot, Centrino 1.6Ghz, 1GB RAM, 60GB HDD)
- VPS Server on VPSLink for demo and collaboration
- O’Reilly Safari Books Online
- Library Delft University of Technology
"The Cone" at the Library of Delft University of Technology - http://www.galinsky.com/buildings/delftuniversitylibrary/index.htm
- Weekly meetings with Mentor, preferably on Monday's or Friday's.
- Progress Updates per major event or otherwise twice a week.
- Dev mailing list.
- IRC | Chat: Session with Mentor when possible and needed.
I’m a highly motivated student from Guatemala. I studied Computer Science and have more than 5 years of work experience between a Checkpoint reseller and IBM. As a student and professional I’ve worked extensively with Free and Open Source software, and over time acquired a knack for making things work. More recently, I came to Delft to do my graduate work.
Coming to Delft University of Technology was the result of more than 2 years of applying to various graduate programs in the US and Europe, and also of seeking financial aid from more than 5 different scholarships. Last year I finally received an acceptance letter from Delft University of Technology and a scholarship grant from the AlBan programme. Promptly, and most happily, I made my way to Delft, where I currently enjoy my studies in Management of Technology at the Faculty of Technology, Policy and Management. I discovered Delft University of Technology from my previous position at Consul Risk Management, a Dutch software company that was recently acquired by IBM. On one of my visits to Consul’s Delft office, a colleague took me to the Delft Blue pottery shop, where I first got a glimpse at the University campus. The thought of studying in the same University as Consul’s founders seemed like a perfect opportunity, so I set myself to the task. I am now a student in the honours track at TUDelft, concentrating on Information Architecture in addition to my studies in Management of Technology. My studies are a mix of courses from an MBA background and a CS background.
In returning to school my main interests were to learn about high-tech entrepreneurship, about how and what makes organizations work, and more about Internet technologies. Luckily, I had an opportunity early on through a course in Technology Ventures taught by Prof. Ken Morse from MIT. From the start I was fascinated by the course and worked hard along with peer group members to earn the highest grade in the class. The success from this course sparked further interests, currently in Enterprise Engineering – through a course taught by Prof. Jan Dietz, Dr. Jan Hoogervorst and Dr. Antonia Albani covering Enterprise Architecture and Web Services – and also in Technology and Strategy - in which I analyzed Yahoo!'s corporate strategy, these are two of the main courses I recently completed in IA and MoT. My next challenge is a course in Internet Technology – which goes into more detail on web services and the semantic web – and a course in Advance Database Technology. I plan to complement these courses with an introductory course to programming in Java. I am very optimistic about my studies and see endless applications of Internet technologies and infrastructures in (virtual) enterprises providing (mobile) business services; one step further in the alignment of business and IT.
Currently, I'm working on implementing a web service for application integration for an online storefront. The implementation will be done in Java with Eclipse as the development platform, Apache Tomcat as Web Server, Apache Axis as Web Service Framework, jUDDI with MySQL to store the information in the registry and UDDI4J to interact with the registry. Next quarter I will continue programming in Java, namely in assignments for a course in Internet Technology that concentrates on web services and an introductory course to programming in Java. The past couple of months I've been experimenting with Google's Android platform, testing small programs written in Java. My main programming experience is in Perl. In my last year at IBM I implemented a web-based solution to translate business requirements to reports for a security auditing software suite. This web application translated user IDs and transaction types to a specific reporting configuration language, enabled configuration transformations, and simplified system administration tasks.
I have system administrator level experience in UNIX and Linux, mainly on FreeBSD and Ubuntu. I am familiar with some of the internals of these operating systems. I have also worked extensively with Debian, Solaris and AIX. I love Apple computers so I also have lots of experience on Mac OS X. For several years I have worked with VMware and other emulators and virtual machine monitors like QEMU and Xen, I have setup complex test labs in these environments. Additionally, I have an excellent understanding of TCP/IP partly through practical knowledge acquired from working with Checkpoint and Open Source Firewalls.
And lastly, I will be helping out back stage in ApacheCon Europe in Amsterdam and will be attending the full 3 days of the conference. I look forward to meeting you there!
Contact Information: http://firstname.lastname@example.org/o.castaneda/contact.html (Mind modified URL with '@' instead of 'a' as [homepage DOT mac DOT com] is not allowed in wiki)
Resume: http://email@example.com/o.castaneda/resume.html (Mind modified URL with '@' instead of 'a' as [homepage DOT mac DOT com] is not allowed in wiki)
Related Blog entries
Architecture in Enterprise Engineering - https://ocastaneda.weblog.tudelft.nl/2008/03/17
The Influence of Architecture on Design - http://ocastaneda.weblog.tudelft.nl/2008/01/30/
"Some people dream of great accomplishments; while others stay awake and do them." -- Constance Newman
-- OscarCastaneda 2008-04-06 14:12:02
-- OscarCastaneda 2008-04-06 14:12:02