Intentional Software - Democratizing Software Creation
Business users doing programming? Simonyi and Kolk presents how Intentional Software offers a radical new software approach that separates business knowledge from software engineering knowledge.
Tracking change and innovation in the enterprise software development community
Posted by Jean-Jacques Dubray on Jan 09, 2008 12:01 AM
Component technologies have continuously evolved since the early 90s. With the advent of Spring and the development of the Dependency Injection pattern, they have taken a new turn and started providing advanced composition mechanisms.
Last week, Sanjay Patil, Standards Architect at SAP Labs, published an article on "IT Scenarios for Service Component Architecture" that described some of the composition strategies enabled by the Service Component Architecture.
Last month, a team from IBM compared the different component technologies and the degree to which they support composition. The article first defined some of the properties that promote composition mechanisms:
- Interface coupling
- Data (type systems and message formats)
- Version resiliency
- Transport independence
- Expected interaction patterns
- Conversations
- Ability to mediate
- Dynamicity
For Sanjay, the two most important factors are transport independence which translates into deployment flexibility, and dynamicity which is achieved in SCA with the use of policies.
The IBM article also explored the many factors that influence the granularity of the component, though it supports the current industry thinking that:
in general, loosely coupled components are coarse grained, while tightly coupled components are more likely to be fine grained
The article argues that:
SCA provides composition on two axes: composition by reference and composition by implementation
- SCA components can compose services by orchestrating the invocation pattern of those services through a single invocation programming model that's independent of where and how the services are deployed.
- SCA can also provide composition by implementation through the use of an assembly of finer-grained components as the implementation of a coarse-grained component.
Their analysis is shared by Sanjay who sees:
- A bottom-up composition scenario where an application [is composed] by assembling different existing implementation artifacts
- An heterogeneous composition scenario ... [where] SCA allows structuring the integration logic, and related functions (such as mapping, etc.) as first class components, whose relationship with other components is then captured as part of a well defined composite.
However, he also describes yet another scenario, a "top-down" scenario which:
...takes the opposite approach for creating the composites [...where] the goal of an Assembler is to analyze the high level business requirements and create composites on top of components that are yet to be implemented.
The IBM article concludes:
One of the strengths of SCA is its ability to combine with a wide variety of fine-grained component models that are used to implement coarse-grained service components. SCA brings value to each of them in terms of modeling the structure of solutions in the large, providing agility and flexibility, and removing the need to define complex configuration details within implementation code. It also has the virtue of being able to connect different component models used for different parts of an overall solution.
Snapshots from SOA Governance: Artifacts, People, Processes, Repositories
Create a photo album application with Project Zero and REST design principles
IBM Agile Development eKit: Free Articles, Expert Q&A, Educational Resources
RESTful todo list sample tutorial with Groovy & Project Zero
Business users doing programming? Simonyi and Kolk presents how Intentional Software offers a radical new software approach that separates business knowledge from software engineering knowledge.
Jason Rudolph discusses Java/Grails integration, Grails plugins, creating a Grails sample application, Grails app structure, data querying and persistence, validation, controllers and tag libraries.
The Scrum Product Owner role is powerful, valuable and challenging to implement. It brings healthier relationships between customers and developers, and competitive advantage - if you do it right.
Effective Java, Second Edition by Joshua Bloch is an updated version of the classic first edition, which won a 2001 Jolt Award. InfoQ asked Bloch questions about the areas that the new edition covers.
A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.
In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.
Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.
Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.
1 comment
Reply