Abstract: In my recent trip to London to present at the 5th International SOA Symposium and 4th International Cloud Symposium, I observed more than 100 organizations participated with keynotes speakers from the US National Aeronautics and Space Administration (NASA) and European Space Agency. Service design principles have been applied successfully in many industries including Life Sciences and Astronomy.
After the meetings, I visited University of Cambridge where Charles Darwin hypothesized biological evolution by natural selection and Stephen Hawking evangelized the Big Bang theory about the origin of the Universe. The trip prompted me to believe the Universe and life on earth were created and evolved by mass customization - a process to transform from singular, basic and generic to diversified, complex and more specific forms.
I will first explore component architecture of the Universe and life, and then discuss the concept of Service Component Architecture, major vendors and business applications. After reading the article, the readers should have a holistic view about the Universe, life and Service Orientation.
Component Architecture of the Universe and Life
According to the Big Bang Theory, the Universe was created from a singularity of nothingness about 15 billion years ago. Initially the Universe was homogenous and then relatively basic particles such as bosons, quarks, leptons, neutrons, protons and electrons were created with smaller particles as the components for larger composites. The present Universe is composed of about 73% of hydrogen and 25% of helium that were created within the first three minutes of the Big Bang and 2% heavier elements that were created during the life cycle of stars and Smaller Bangs called supernovae[REF1]. Figure 1 shows timeline of the Universe after the Big Bang.
Figure 1 - The Big Bang Theory Illustration [Source: Lawrence Berkeley National Laboratory]
The fact that stars and heavier elements were created billions of years after the basic elements were formed suggests enterprise reusable components should be developed before individual business projects get started. From a governance perspective, we have seen federal agencies with a dedicated "Integration Service Center" have more success in developing truly enterprise shared services. The level of reusability is often correlated to an organization's area of governance and jurisdiction. Success will be limited if reusable components are by-product of a project with a set of specific business requirements.
The Solar System was formed about 4.6 billion years ago and the Earth is the only planet where life is known to exist. Life started to appear on earth about 3.8 billion years ago. All living organisms on earth are composed of primarily six elements: Carbon, Hydrogen, Nitrogen, Oxygen, Phosphorus, and Sulfur. This perhaps will prompt you to ask about the elements of Service Orientation that can be productized and commercialized. You perhaps will find the answer in Service Component Architecture (SCA) and vendor products in the next few chapters.
According to recent study, all Homo sapiens can be traced back to "Mitochondrial Eva" in east Africa about 200,000 years ago and similarity between genomes of any two humans is more than 99.5% while similarities between humans and chimpanzees range from 95% to 99%. Christley's [REF2] study suggested the uniqueness of an individual human genome can be stored in only 4MB while the commonality for all humans can be stored in 4GB. It is amazing less than 0.1% customization can create such a level of diversity among different individuals and races.
I have not seen much statistics about the commonality among different projects in an industry or organization. But our own experience indicates it is quite an achievement to have 80% shared common services among all projects in an organization. Many organizations have duplicated development resulted in redundant, inconsistent and stove-piped information systems with very little reuse.
Life is reproduced through cell division and differentiation. Figure 2 shows an illustration of the component architecture of an animal cell. Division is the process of generating generic reusable components while differentiation is the process of creating specific structures and unique functionalities. A cell serves as a template and blueprint for an individual life and it contains all necessary information for its identity. In therapeutic cloning, a transplant recipient will reject a donor organ if it is not cloned with cells from self.
Figure 2 - Animal Cell Structure [Source: Wikipedia]
In the last two centuries, industry technologies are majorly focused on mass production of goods and services with reduced cost. A recent industry trend is mass customization. According to Chase [REF3] et al, mass customization is the method of "effectively postponing the task of differentiating a product for a specific customer until the latest possible point in the supply network." This is similar to cell division and differentiation as we discussed earlier.
The same principle also applies to Service Orientation and Cloud Computing. Service Orientation introduces a set of design principles to support loosely coupled systems with standard interfaces for reusability, interoperability and adaptability. Cloud Computing offers infrastructure, platform, storage and software as services like mass produced electric utility, yet provides capacity and configuration based on each customer's specific needs. It is cost efficient to massively produce because of economies of scale. Google Apps Engine and Amazon EC2 are two examples of massive capabilities with efficiencies that smaller private cloud providers cannot match. In this sense, the size of the bang matters.
Life sciences have a strong need for customization. A prosthetic limb or an implant needs to be tailored to fit into a person's unique physiologies. A regenerative organ cloned from self can avoid immunological rejections. Same medicine could have different effects on people with different genetic makeups and physical conditions therefore prescriptions need to be specific and tailored.
Enterprise Information Systems
Enterprise information systems also need high level of customization. The Enterprise Resource Planning (ERP) software market has consolidated into only a few vendors and each customer implementation usually requires extensive customization. For example, even there are significant commonalities among all ERP industries in general, retail is different from insurance, and both are very different from public sector implementations. Even within the public sector, Department of Defense will be very different from Depart of Health and Human Services.
When customization is necessary, it is very important to keep the customization module loosely coupled with the core products so that the generic and specific can be upgraded independently. If the customization is bolt on, whenever there is a software upgrade, it will often get lost and need re-customization.
Service Component Architecture
Concept and Industry Standards
Michael Rowley and Jim Marino made significant contribution to the concept of SCA and subsequent adoption by OASIS as open standards while working at BEA Systems (now part of Oracle). The purpose of SCA is to make it easier for developers to follow SOA principles and best practices. SCA builds on open standards such as Web services, Service Data Object, Business Process Execution Language (BPEL) [REF4]. Figure 3 shows Purchase Order Processing sample application provided by Oracle in SCA notations:
Figure 3 - Purchase Order Process SCA Notation
SCA provides a model for composition of services and creation of service components, including the reuse of existing application function within SCA compositions. Some basic SCA terms are described below:
- Composite - A composite is used to assemble SCA elements in logical groups and contains a set of components, services, references and the wires that interconnect them, plus a set of properties.
- Component - A Component is the basic elements of business function in an SCA assembly, which are combined into complete business solutions by SCA composites.
- Properties - Properties allow for the configuration of an implementation with externally set values. It is worth mentioning some highly configurable applications usually offer large number of properties that can be changed by business users to fit into the needs of enterprise users.
- Service - A Service represents an addressable interface of the implementation.
- Implementation - An implementation is a technological realization of a business function. Implementation types include Java EE, Spring Framework, BPEL and C++.
- Binding - Binding specifies the technology implementation of a Service or Reference.
- Reference - A reference represents a requirement that the implementation has on a service provided by another component.
- Promote - Promote is used to connect different components across composites.
- Wire - Wire is used to connect different components within a composite.
Vendor Product Analysis
SCA provides a model for composing applications that follow SOA principles. Some open source and commercial software vendors are described below:
- Apache Software Foundation - Apache Tuscany [REF5] simplifies the task of developing SOA solutions by providing an infrastructure for SOA development and management. It can be embedded in many platforms including Apache Tomcat, Oracle Weblogic, IBM WebSphere and Redhat JBoss.
- IBM - IBM has adopted Apache Tuscany and integrated it with WebSphere Application Server. WebSphere community version is based on open source Apache Geronimo. IBM has been doing very well in packaging open source products in its commercial offerings.
- Redhat - Redhat JBoss SOA-P version 5 does not intrinsically support SCA. SwitchYard [REF6] has adopted SCA to provide support for developing, deploying, and managing SOA applications and it could become the foundation of JBoss SOA-P 6.
- Tibco - According to Tibco documentation, ActiveMatrix Service Grid (version 3.2) [REF7] offers support for development of SCA composite applications. It is kind of interesting that Tibco did not add SCA into its BusinessWorks instead created a new product to support SCA.
- Oracle - Oracle SOA Suite 11g offers a complete pre-integrated infrastructure to support SCA development [REF8]. It is worth mentioning that Oracle SOA Suite 10g is based on OC4J while 11g is based on Weblogic.
Conclusion and Future Considerations
Now we have learned both the Universe and life are composed from simple and basic elements that were created at different stages. We can safely conclude reusable generic software components should be created first while customer specific requirements should be accommodated at a later stage. The Human reproduction process is simple while the generation of life ingredients took billions of years with many cycles of supernova explosions. This reminds us simplicity and agility often requires extensive engineering effort behind the scenes.
The grand design of the Universe and life follows similar composite patterns and it can be used to validate SOA principles and guide our software engineering activities. SOA to SCA is like DNA to life. Each vendor's SCA product reflects its understanding about SOA and often is heavily influenced by its business interests. It is critical to identify a product to fit into an organization's DNA. There is always a risk to learn a technology but find out it will be soon outdated. It will be very unfortunate to go with a wrong vendor or pick a losing product. One way to find out is to check whether your perspective products support SCA.
The author would like to thank the following industry leaders and experts for reviewing this article:
- Linda Y. Cureton, NASA Chief Information Officer
- Barry Blumenfeld, MD, SVP and CIO, MaineHealth and Maine Medical Center
- Michael Yuan, Ph.D., Entrepreneur, Author, Scientist and CEO at Ringful LLC
- Joseph Klosky, CTO and Senior Technical Advisor at Food and Drug Administration
- Victor Chai, Senior Enterprise Architect, Ministry of Health Holdings Ltd., Singapore
[REF 1] http://www.lbl.gov/abc/wallchart/chapters/10/0.html
[REF 2] http://bioinformatics.oxfordjournals.org/content/25/2/274
[REF 3] http://en.wikipedia.org/wiki/Mass_customization
[REF 4] http://www.oasis-opencsa.org/
[REF 5 http://tuscany.apache.org/
[REF 7] https://docs.tibco.com/#category=composite-applications
[REF 8] http://www.oracle.com/technetwork/topics/entarch/whatsnew/oracle-sca-the-power-of-the-composi-134500.pdf