Five Important Trends on the Enterprise Architect's Radar
It is no secret that the internet architectures are influencing enterprise architectures. This post attempts to summarise some of the recent trends in the internet space, which seem to be carrying some momentum sufficient enough to influence the enterprise. So without further ado, these trends are :
- REST : The Representational State Transfer
architecture style builds on the essential elements of those constructs
which made the internet so globally scalable. A detailed explanation of
the rationale and strengths of REST are completely beyond the scope of
this article. If your job requires you to be continuously aware of
emergent trends and whether they fit your enterprise architecture needs
– this is the one must explore trend.
Impact : Web based architectures, Service Oriented Architectures, wide availability and immediate usability of data and processing requests (resources) through simple HTTP URIs and minimal integration effort
- Interoperable Cloud : The interoperable
cloud is the ability to create a private cloud and also leverage a
public cloud. This has been made possible by offerings such as the Ubuntu Enterprise Cloud which allows you to build a private cloud or use a public cloud such as Amazon EC2 while being able to access them using the same set of APIs thanks to open source efforts such as Eucalyptus.
This allows you the flexibility of initially using either a private or
public cloud and then subsequently shifting to the other, or being able
to use both simultaneously.
Impact : Large servers vs cluster of commodity servers, virtualisation, elastic deployments, flexible hardware procurement / provisioning, infrastructure management in organisational hierarchy.
- NoSQL : While I am unhappy with the
name, it has stuck. This refers to a set of options now available to
store your data unconstrained by many RDBMS requirements (eg. flexible
schema, key value pairs etc.). Some of the databases also allow you to
store data in a distributed manner over a number of servers with an
intent to support high availability in write intense scenarios even as
they may require you to move towards eventual consistency. These
options increase your manouverability / flexibility as an architect
even as they require you to meet a different set of challenges.
Impact : Relational databases, data storage strategies, data distribution strategies, vertical vs. horizontal scalability, transactionalisation, consistency and availability
- Polyglotism : Developer costs now occupy
an increasing percentage of total costs, development time is being an
increasingly dominant factor for time to market, and ability of
software to change and adapt quickly to newer demands is now a critical
success metric. One of the solutions is to write different parts of the
software in a different languages most appropriately suited for concise
and rapid coding as well as supporting quick reaction changes to each
part appropriately. Thus it is conceivable to have some of the business
rules written in a dsl written using jruby and some of the algorithms
written in clojure in a software built on the JEE platform.
Impact :Development culture and processes, minimum developer skill and scalability, risk management for managing required vs. available skills.
- Decentralised processing : Thanks to
many developments which are leading to increasingly distributed
processing including REST and NoSQL, applications will need to be a set
of collaborating network based components (we’ve heard this before with
distributed objects as well). However especially given some of the
lesser guarantees that such architectures can provide around immediate
guaranteed processing, latency issues, distributed control and
asynchronous processing, a particular piece of business logic may get
satisfied in a staggered fashion across a number of collaborating
components. This may increase challenges in terms of currency of
available data even as it helps actually deliver on the vision of
distributed objects and simplifies individual component development.
While asynchronous capabilities such as those supported by MQ series
and the like have been used in the enterprise for ages, I do anticipate
increasing use of lighter messaging constructs such as PubSubHubbub within the enterprise.
Impact : Application partitioning, network based components, difficulty in supporting fully synchronous workflows.
With earlier stints with Citicorp and AT&T, and having spent the last 10 years as a Software Design Consultant, I advise software companies build software targeted to enterprises and banks. One of my significant assignment has been that as the CTO and Head of Product Development at CashTech Solutions. Having worked in Senior Management positions, and having managed large teams, I still continue to be very passionate about programming, design, architecture and all that comes under the umbrella of software engineering. Dhananjay is a DZone MVB and is not an employee of DZone and has posted 2 posts at DZone. You can read more from them at their website.
- Login or register to post comments
- 5295 reads
- Printer-friendly version
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)










Comments
Jack Hung replied on Tue, 2009/11/03 - 3:52am
dnene replied on Tue, 2009/11/03 - 10:23am
in response to: jack_hung
Jack,
I had chosen to specifically focus on the trends that are treading onto the enterprise space from the internet applications space and also to remain sufficiently language or platform agnostic. Else the count of trends would be substantial.
However would be curious if others can think of other substantial trends which are influencing the enterprise via the internet.
Loren Kratzke replied on Fri, 2009/11/06 - 12:17am
in response to: dnene
artwar replied on Sat, 2009/11/07 - 5:30am