Friday, November 20, 2009

B2B Integration Reference Architecture

With the advent of internet and increasing globalization of business B2B has gained predominance. More over increasing complexities in business processes and sheer increase in inter business transactions is forcing B2B integration in big way. On the technology side, emergence of SOA, BPM and Cloud Computing has changed thought about integration.

Keeping in mind Business and Technological factors, I have developed a B2B Integration architecture which is platform and vendor neutral.



The bottom most Enterprise IT Assets block represents Business & Technical Applications and Services. These IT assets may be in form of packaged solutions or in house developed. These assets consist of in-house hosted solutions as well as ASP or SaaS like solutions. This layer provides information processing and persistence capality to fulfill business needs.

In any typical business organization, two protect IT assets DMZ is implemented using two firewalls. In the proposed Reference B2B Integration architecture, DMZ hosts B2B Gateways Proxy to surrogate real B2B Gateways. Just between B2B Gateway and inner firewall, Entity Management layer resides to resolve identity of incoming requests. On successful entity resolution requests are passed to B2B Gateway layer which is essentially a message transformer.
B2B Gateway passes the message to ESB which with help of Trading Partner Agreement Enforcer passes to appropriate piece of IT asset for processing.

Similarly Outgoing requests are passed to partner from Enterprise IT assets.

Wednesday, November 18, 2009

Cloud Computing Demystified

What is cloud computing? No one knows. Every one has his own definition to suite his needs. To add to confusion I also add my two cents to definition of cloud.

In my point of view cloud computing is an umbrella term for XaaS and virtualized IT assets supported by Utility, Grid and Autonomic Computing in one offering. But due to early in life cycle of evolution not all cloud offering are based on Utility, Grid and Autonomic computing principles. X in XaaS has many metaphors and there also exist great divide among analysts, vendors and service providers.



Infrastructure as s Service (IaaS): This is Data Centre as a Service or remotely managed data center.

Storage as a Service: This is Disk Space as a Service or in simple terms Disk Space on Demand. You can consider this as remote storage for consumer but local for application.

Database as a Service (DaaS): This service provides consumers to access and manage persistence layer (RDBMS, Hierarchal Database – LDAP, File System, etc).

Information as a Service: This is granular business services on demand. For example tax calculation for a product/service.

Software as a Service (SaaS): This is Application as a Service. Here a major portion of or full business application is offered on demand. On the extreme of Cloud is Process as a Service (process outsourcing).

Integration as a Service: It is one of the most interesting aspects of Cloud. It provide features of traditional EAI/B2B but as service.

Platform as a Service (PaaS): This is offering provide complete SDLC of Cloud hosted application/service. Most of the matured Clouds provide this service by default.

Governance as a Service: This is basically mechanism to manage cloud computing resources, typically managing topology, resource utilization, up time, policy management and other related issues.

Testing as a Service: This is facility provides sandbox testing of developed application/service using PaaS offering.

Security as a Service: Due to open nature of internet, security is must for any offering. Security as a service may offer identity management, encryption/decryption, etc.

Friday, November 13, 2009

Case Against Private Cloud

1. Change in mindset of existing IT organization
2. Lot of automation in policy enforcement
3. Addition of one more layer of complexity in IT Infrastructure
4. Additional resource – man, machine, material (Software and hardware) requirement which my not be justified in light of RoI and TCO
5. Disruption in existing IT infrastructure
6. Shifting from private cloud to public cloud may become challenging once benefits of cloud computing are understood and internalized by IT and business.

Wednesday, November 11, 2009

Why India lags behind in Software Product development?

1. Restrictive culture which hinders free thinking
2. Limited talent pool
3. Fascination for foreign things
4. Absence of Angle investors
5. Software piracy
6. Risk aversion
7. Long gestation period
8. Most of population is in lower side of Maslow’s need pyramid
9. Easy money in body supply
10. Poor government support for globalization

Tuesday, November 10, 2009

Book Review: Service - Oriented Modeling by Michael Bell

Book Review: Service - Oriented Modeling by Michael Bell: Publisher- John Wiley: ISBN- 13: 978-0-470-14111-3

Though book is published in 2008, I got the chance to real this book now. Before reading the book I had impression that this book is about SOA modeling and will be helpful in my modeling task. But its reading was quite disappointing. Book tryies to cover too many things and looses the context very frequently.

Book is highly theoretical and targeted to academics. It virtually holds no practical advice to practitioners.

The modeling part of SOA starts from chapter 8 onwards but again author looses the track very frequently.

If Michael likes to develop a language for SOA modeling he should approach some industry consortium or community so wider acceptability can be developed.

Disclaimer: I did not get paid to review this book, and I do not stand to gain anything if you buy the book. I have no relationship with the publisher or the author.

Further reading: Related information at Wikipedia: http://en.wikipedia.org/wiki/Service-oriented_modeling and at IBM http://www.ibm.com/developerworks/library/ws-soa-design1

One can get more information about book and related topics from:

1. Amazon http://www.amazon.com/Service-Oriented-Modeling-SOA-Analysis-Architecture/dp/0470141115
2. Publisher -- Wiley http://as.wiley.com/WileyCDA/WileyTitle/productCd-0470141115.html
3. Wikkipedia: http://en.wikipedia.org/wiki/Service-oriented_modeling

Wednesday, November 4, 2009

Book Review: The Productive Programmer by Neal Ford

Book Review: The Productive Programmer by Neal Ford: Publisher- O’Reilly: ISBN- 13: 978-0-596-51978-0

This book is targeted to developers who must be consumer of self improvement books which lists lot of commonly identifiable day to day improvements but difficult to implement. But no doubt, book reminds lot of tips and tricks which can enhance the productivity of an average developer.

Book has divided into parts mechanics and practice which lists and identify rules of productivity and philosophy behind those rules respectively.

The first two chapters (chapter 2 and 3) talk about small tits bits of increasing productivity of an programmer using some disciple and using some tools.

Chapters 4 and 5 focus on principles automation and uniqueness.

Chapters 6 to 15 talk about some more involving practices of increasing programmers’ productivity and theoretical aspects from various walks of life.

I certainly recommend the book. It is nice read but will not keep it in my bookshelf.

Disclaimer: I did not get paid to review this book, and I do not stand to gain anything if you buy the book. I have no relationship with the publisher or the author.

Further reading: A competing book is Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/

One can get more information about book and related topics from:

1. Book’s web presence http://productiveprogrammer.com
2. Amazon: http://www.amazon.com/Productive-Programmer-Theory-Practice-OReilly/dp/0596519788
3. Flipkart : http://www.flipkart.com/productive-programmer-neal-ford-david/0596519788-i1w3faz05d
4. Publisher – O’Reilly: http://oreilly.com/catalog/9780596519544
5. Dr. Dobbs Review: http://dobbscodetalk.com/index.php?option=com_myblog&show=The-Productive-Programmer-Book-Review.html&Itemid=29
6. leftontheweb review: http://www.leftontheweb.com/message/Book_Review_The_Productive_Programmer
7. Agile Developer Venkat's Blog review: http://www.agiledeveloper.com/blog/PermaLink.aspx?guid=f77b98ff-2865-4a27-951c-bf51bd159468
8. Library Thing review: http://www.librarything.com/work/5606442
9. Mark Needham review: http://www.markhneedham.com/blog/2008/09/05/the-productive-programmer-book-review/
10. DevSource review: http://www.devsource.com/c/a/Architecture/Book-Review-The-Productive-Programmer-by-Neal-Ford/

Tuesday, November 3, 2009

Virtualization Explained

Virtualization represents any type of process obfuscation where a process is removed from its physical operating environment.

Because of this broad definition, virtualization can almost be applied to any and all parts of IT assets. For example, mobile device emulators are a form of virtualization because the hardware platform normally required to run the mobile operating system has been emulated, removing the OS binding from the hardware it was written for.

But for the real life perspective virtualization can be classified as:

Operating System Virtualization

This is the most prevalent form of virtualization because of the need of running multiple operating systems on a single hardware.

In this form of virtualization, Virtual Machine Managers (VMMs) manage each virtual machine individually on a host operating system (some time directly on hardware). In turn each Virtual Machine hosts a separate instance of operating system. Each of these separate operating systems instances is unaware of the other.

Application Server Virtualization

Application Server Virtualization is just glamorous name of advance load balancing specifically of reverse proxy.

This is an example of one-to-many virtualization: one server is presented to the world, hiding the availability of multiple servers behind a reverse proxy.

Application Virtualization

Application virtualization can be of three types. One way is using Thin Client – browser based access to application. The second one is Zero Client – remote access of machine which hosts application via remote access mechanism. The third approach involves mechanism where application is hosted at remote machine but is executed locally.

Hardware Virtualization


Hardware virtualization has roots in parallel processing. With advent of multi processing hardware and multi core processor it has become omni present in business.

Hardware virtualization breaks up pieces and locations of physical hardware into independent segments and manages those segments as separate, individual components.

Storage Virtualization

Storage virtualization can be broken up into two general types: block virtualization and file virtualization.
Block virtualization is best summed up by Storage Area Network (SAN) and Network Attached Storage (NAS) technologies: distributed storage networks that appear to be single physical devices.

File virtualization moves the virtual layer up into the more human-consumable file and directory structure level. Most file virtualization technologies sit in front of storage networks and keep track of which files and directories reside on which storage devices, maintaining global mappings of file locations.

Service Virtualization
Service virtualization is like catch all case for all of the above definitions. Service virtualization connects all of the components utilized in delivering a service over the network.

In SOA service virtualization is confined to software aspect only is primarily achieved using ESB.

Monday, November 2, 2009

SOA Reference Architecture Traits

A SOA Reference Architecture must exhibit following traits:

1. Separation and Abstraction: Different functionalities of architecture must be sufficiently abstracted and separated (may be as layers) to incorporate functional and technological challenges under given business scenario.
2. Options: Reference architecture must give multiple options to carry out a process/task/activity to leverage the abstraction and separation of layers. It also enables one to carry out implementation to optimize as per the underlying platform and tool usage.
3. Architectural Decisions: Reference Architecture must support non functional requirements which in turn require grading of KPI ( Key Performance Indicator) and SLA ( Service Level Agreements).
4. Enabling Technology: Reference Architecture should be mapped to real life, available platforms, tools and techniques. At this point architecture may show some rigidity due to constrains of chosen platform/tools/ techniques.