Archive
Implementing Entity Services using NoSQL – Part 5: Improving autonomy using the Cloud
In the previous posts I discussed how I went about building my SOA ‘Entity’ service for Products by using a combination of Java Web Services, Java EE and the CouchDB NoSQL database. In this final post in the series I’m going to leverage some of the technical assets that I’ve created and implement some new user stories using some popular SOA patterns.
My current Product Entity Service implementation is very business process agnostic, and therefore highly re-usable in any scenario where consumers want to discover or store Product information. However, as it stands the Product Entity Service is designed to be used within a trusted environment. This means that there are no restrictions on access to operations like Create, Update or Delete. This is fine within a strictly controlled corporate sandbox but what if I want to share some of my service operations or Product information with non trusted users?
Lets imagine that in addition to our in-house use of the Product Entity Service we also wanted to cater for the following agile ‘user story’…
Harmonising Agility and Architectural Strategy
It’s hard figuring out how to get a balance between agile development and strategic architectural goals, but its not impossible. It’s important to understand that you need both if you are to enjoy sustainable success over long periods. Too much emphasis on the here and now can result in brittle engineering. Whereas too much emphasis on pure engineering can often mean that not enough business value get’s delivered.
My advice is simple. Agile projects deliver functionality based on the requirements fed into the project as User Stories. The key to achieving harmony is to ensure you create user stories that capture both the functional and non-functional requirements of your project. Some agile authors refer to this as ‘building an architectural runway’ – the point being that its very bad to ‘run out of runway’ during take-off.
I realise that. In truth non-functional requirements are often better suited to the acceptance criteria of a story rather than being a story in their own right. However, when your running a programme of projects, committing to architectural evolution in this way will help you to ensure that you never get boxed into a corner. Your software should remain strong enough to support what you currently have, but will have enough headroom left over to accommodate any foreseeable requirements.
My ramblings on Twitter…
- DZone have now syndicated my series blog articles about becoming a SOA Certified Architect. First installment: soa.dzone.com/articles/soa-c… 3 hours ago
- if it ain't broke, don't fix it - "2014 BMW 5-Series facelift lineup officially revealed" feedly.com/k/10bHYc0 4 days ago
- Enjoying 'SOA Made Simple' from @packtpub. Review coming soon. 5 days ago
- Off to a car auction tomorrow; a pageantry of marvellous metal. Leaving the cheque-book at home though, just in case lol 1 week ago
- Right then. Time to move on to reviewing SOA Made Simple. goo.gl/IwUGI 1 week ago
- My last day collaborating with @GlueReply today, got to get everything finished off and handed over. Good 2 work with @Mr_Jason_hill finally 1 week ago
- RT @tastapod: Agile Manifesto first line: People and Interactions over Processes and Tools. Agile team first day: Which process and tools s… 2 weeks ago
Tags
Archives
- February 2013 (1)
- September 2012 (1)
- August 2012 (2)
- July 2012 (4)
- June 2012 (1)
- May 2012 (1)
- April 2012 (2)
- February 2012 (1)
- January 2012 (1)
- September 2011 (2)
- August 2011 (3)
- July 2011 (1)
- May 2011 (1)
- April 2011 (1)
- March 2011 (1)
- February 2011 (1)
- January 2011 (2)
- December 2010 (1)
- August 2010 (3)
- June 2010 (1)
- May 2010 (1)
- March 2010 (7)
- January 2010 (3)
