Google Summer of Code Proposal: Allow Google Android applications to easily consume business services
Oscar Castañeda: <oscar.castaneda AT gmail DOT com> | <o.v.castanedavillagran AT student DOT tudelft DOT nl>
Incubating an Android in Delft
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” 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
 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 development of a thin SCA core/runtime to allow Google Android mobile applications to easily consume business services. Parallel efforts to integrate Google services into SCA components will enable developers to create service components and to assemble components into applications called composites. The Android platform is the perfect platform for consumption of such compositions, in part because of the open source operating system and readily available SDK that make it easier to develop and port applications to Android.
In creating Android, Google and the Open Handset Alliance, were looking to provide developers with a platform and the set of tools needed to develop new types of experiences. The Android software stack includes the building blocks needed to achieve this, and is sufficiently open and extensible to allow those pieces to be combined in new and innovative ways. In my opinion, the Apache Tuscany project can empower users, another all-important source of innovation, by providing them with a “Service Development Kit” that allows them to easily and intuitively combine services in such a way as to create new types of experiences.
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 that allow applications to easily consume services, such as Google Android applications consuming business services. Involving users in the innovation process is key for such efforts to flourish.
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 consumption of a business service, this is different than the demo at every stage which is meant to help drive the development through a usage scenario. The Use case will be developed through the first 3 stages. It is worth noting that stages 1 and 2 will likely be closely integrated as features are identified, ported and tested. There might also be some iteration between these stages and stage 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: Calculator example
- Duration: 1 week: May 26th – June 2nd
Stage 1: Identify SCA subset to Port
- Milestone: Identified subset of SCA to port into lightweight mobile SCA core/runtime
- Deliverable: Identified subset of Tuscany code to port including porting feasibility
- Mini scenario / demo: Identify code used in Calculator example
- Duration: 3 weeks: June 2nd – June 23rd (+ 1 week fallback)
Stage 2: Port SCA subset
- Milestone: Ported subset of SCA (lightweight mobile SCA core/runtime) capable of demonstrating functionality (eg. Calculator example)
- Deliverable: Ported code
- Mini scenario / demo: Calculator example running in Android emulator
- Duration: 3 weeks: June 23rd – July 14th (+1 week fallback)
Midterm evaluation: Between July 7th and July 14th
Stage 3: Cutting Corners
- Milestone: Reduced SCA subset capable of demonstrating functionality (eg. Calculator example)
- Deliverable: Reduced SCA subset code (lightweight mobile SCA core/runtime) that is as thin and lightweight as possible
- Mini scenario / demo: Calculator example still running in Android emulator
- Duration: 3 weeks: July 14th – August 4th (+1 week fallback)
Stage 4: Use case(s)
- Milestone: SCA Composition of integrated Google services through SCA core/runtime in Android
- Deliverable: Use case(s), demonstration, story
- Mini scenario / demo: Demo Use case
- Duration: 3 weeks: August 4th – 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 and Calculator example
- Duration: 1 week: August 25th – September 1st
Final evaluation: Between August 25th and September 1st
I have already started researching possible uses of Tuscany and have been experimenting with Android for a couple of months. In doing so I installed Tuscany from its binary distribution and also built it from source. I also installed the Android SDK on Mac OSX and have been testing and modifying the included sample applications. Additionally, I have started communicating on the developer mailing list for both Tuscany and Android. 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)
Android SDK in MacBook, Windows XP and Ubuntu Linux
- 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://email@example.com/o.castaneda/contact.html (Mind modified URL with '@' instead of 'a' as [homepage DOT mac DOT com] is not allowed in wiki)
Resume: http://firstname.lastname@example.org/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
Supported by the Programme AlBan, the European Union Programme of High Level Scholarships for Latin America, scholarship No. E07M401381GT. -- OscarCastaneda 2008-04-06 14:12:26
Supported by the Programme AlBan, the European Union Programme of High Level Scholarships for Latin America, scholarship No. E07M401381GT.
-- OscarCastaneda 2008-04-06 14:12:26