Sunday, May 26, 2013

SOA-Architecture - The future is the Any-Any-Any Architecture

Unchanged post republication dated 5/27/2013, still lot of truth in it

The Any-Any-Any Architecture (A4) is the consequence on current IT realities, new innovations and developments. I come across the term “Any-Any-Any Architecture” from a replay of a conference keynote from Anne Thomas Manes (VP&Distinguished Analyst, Gartner) on “New Paradigms for Application Architecture: from Applications to IT Services”. It means that applications could run on Any Device using Any Services working with Any Data sources. A4 must be deployable on the Cloud in order to have a faster time-to-market and to reduce costs by utilizing a uniform elastic platform.

In my opinion all signs increasingly pointing to an A4 direction because more and more smart connected devices running applications which request any services utilizing all kind of data sources. Modern interactive applications will be designed in the A4 architecture style.

image

The “application” is now on the device using a collaborative service mashup from different service-enabled backends. The application should work on Any Device with any resolution (and any up-to-date browser). The dominant model with server-side applications will change to client-side applications talking to server-side services running on premise and/or cloud. These services will use a variety of different data storage technologies for different kinds of data. Big Data will increasingly play an important role as the data volume will grow. NoSQL databases provide alternatives with better scalability and performance to the predominant relational databases. Martin Fowler is talking about Polyglot Persistence in this context. So polyglot implemented services which use Polyglot Persistence will become reality.

The change to Any Device happens today, whereas the change on Any Data is slow-moving because companies are naturally conservative when it comes to their data storage (to quote Martin Fowler). The change to Any Service should already have taken place.

Any Device

Mobile computing is actually the driving force on Any Device. Smartphones and tablets are pushing the mobility growth. Additionally new innovative devices like Google Glasses coming soon. Google Glasses belong to the device category of Wearable Computing Devices which are sharing the same challenges like mobile computing including the software architecture. All these connected devices need services to run applications. The service delivery of functionality and data has to be safe and guaranteed at any time.

Browser-based applications using HTML 5 with UI-centric JavaScript (JS) will succeed. Multi-page web application with a “Thick Server Architecture” are turning to Single-page Applications (SPA) with a “Thin Server Architecture” (TSA). jQuery is actually one of the most often used JS library. Newer touch-optimized libraries like jQuery Mobile will address the requirements of mobile devices. But there is a whole bunch of new JS libraries to enable Service-Oriented Front-End Architectures (SOFEA). SOFEA will expect RESTful Web Service interfaces.

I guess GWT and GWT-based products (like Vaadin) or JSF-frameworks (like Oracle ADF Mobile) will not win out over. JavaFX is pushed by Oracle and could also run on Android and iOS devices (demonstrated at JavaOne 2011). But will these technologies break the HTML 5 with JS hype?

Any Service

What’s about SOA? SOA is Any Service on an A4! Some IT practitioners think SOA is a buzzword that is history now. But in my opinion it’s the reverse case. SOA is definitely a pre-requisition of the A4 (to quote Anne Thomas Manes). Beside the reduced costs, monolithic environments with silo-based applications have not the agility and flexibility to serve multi-channel consumers (Desktop, Web, Mobile, Social, B2C, B2B and B2E).

The IT industry has mature technologies to build business-critical services running on fail-safe, scalable and highly available systems already today. One of the most promising solutions is the Service Component Architecture (SCA) which is an independent OASIS specification. Pure JEE Runtime Containers or the SpringSource Application Platform are also a reasonable alternatives. But in my opinion these solutions are looking pale compared with SCA supporting middleware suites. But a certain investment of time and cost is required to bring these middleware suite into Enterprise reality. 

SCA is a technology for creating services implemented and assembled as composites. SCA does not specify a presentation-tier or persistence technology, instead SCA has the focus on service implementation and integrate with other technologies. SCA Services itself may be implemented using different technologies and programming languages. Therefore you could add one more “Any” for Any Language of service implementation. Services are more and more polyglot developed. Multiple General-Purpose Languages (GPL) are mixed with multiple Domain-Specific Languages (DSL). As I already stated on my last blog, in order to produce polyglot implementations you need environments where polyglot-ism is encouraged.

SCA addresses the polyglot complexity and forces reuse. Therefore the SCA technology has strong supporters like TIBCO, IBM or Oracle. For example the Oracle SOA Suite 11g is based on a SCA polyglot supporting platform (including the SCA Spring components as part of the composites) and come along with an well-integrated ESB, BAM and CEP product.

Any Data

Data Services are Any Data. The dominance of relational database management system (RDBMS) will be broken in the future. NoSQL (Not only SQL) databases will become equal priority beside SQL databases. Different kind of databases like Neo4j as graph database, MongoDB as document-oriented database and Cassandra as distributed key-value database will become normality (just to name a few). Newer architectural pattern like CQRS (Command and Query Responsibility Segregation) will force the co-existence of SQL and NoSQL databases, because view data do not need to be placed on heavyweight SQL databases. In-memory technologies will also gain more and more importance and show us a way out of the “database is always the performance bottleneck” issue (“memory is the new disk, and disk will become the new tape”). Todays high-speed performance requirements need in-memory databases (IMDB) like Redis or SAP HANA and/or in-memory data grids (IMDG) like GemFire or Coherence. High data volumes on any type of data will be addressed by Big Data concepts (Volume, Velocity, Variety) and the de-facto standard open-source Hadoop computing framework. Even new integrity models with No ACID transactions and eventual consistency are coming up.

A4 One Step Closer

Let’s take a deeper look on the A4. What do we have today and how is it mapped on current technologies. Therefore I follow in essence the reasoning from Adrian Colyer (CTO Cloud Application Platform, VMWare) given on the SpringOne 2GX conference in 2012 (keynote: “The New Application Architectures”). In my opinion this excellent keynote confirms A4 in more detail.

The presentation layer logic implemented in terms of well-known MVC frameworks like Apache Struts will disappear from the server-side. The service layer is moving up and is now the front-line on the server-side (TSA/SOFEA principle). But the advantages of the MVC pattern are actually recovered by JavaScript developers in order to have the right level of abstraction and maintainable code structuring. JavaScript MVC frameworks taking control on the client device side.

Client developers could create also browser-based web applications which are able to run offline. Google Gears was the first step on client-side persistence and is now continued with the standardized W3C Web Storage specification. Web Storage (also called DOM Storage) supports durable local and temporary session storage.

The server will also be able to initiate the communication to the client. Server-side asynchronous events and notifications are pushed to the client. The W3C WebSocket API specification enables a durable two-way TCP communication between clients and the server. WebSocket support a reliable “real-time” communication with minimal latency.

Today we have several JavaScript libraries which are used in conjunction to do DOM manipulation, templating, modular loading, UI component handling, MVC structuring, etc. So AnyDevice development will come at a cost - but it will come because the benefits are worth it.

Business domain services will provide functionality and data through RESTful APIs. Private service-to-service communication will still use “SOAP over HTTP” Web Services or other binding types (like JMS, RMI or Socket). But lightweight REST Web Service communication to the client device has become accepted and prevailed in web-oriented architectures. Most common REST will return JSON or XML.

“SOA Products” offered by mature middleware suites like TIBCO ActiveMatrix BusinessWorks or Oracle BPM/SOA Suite will help to build Any Service connectable to Any Device. These suites absorb already a lot of complexity coming with SOA, but these products are not sufficient to “do SOA”. Finally SOA implementation needs an own practical architecture approach. As already mentioned, SCA technology will help to build business domain services, but an own “internal” design is necessary. And in my opinion this design is not platform agnostic. So you will need a more platform-specific idiomatic design, based on the selected middleware product. 

Access on Any Data will happen on SQL and NoSQL databases, not forgetting Content Repositories. The most common ORM tools already support NoSQL databases (like Hibernate OGM and EclipseLink NoSQL). But also other forms and types of persistence stores like HDFS (Hadoop Distributed File System) are expected to become increasingly the standard case.

image

More and more solutions will move towards a Cloud platform because of a budget dilemma and time-to-market considerations. On Hybrid Clouds parts of the solution are running on a hosted Private Cloud and parts on the Public Cloud. Hybrid Clouds will appear as a usually solution in the future. Sensitive services on-premise, others on shared and rented off-premises solutions. So fluid IT boundaries turn to reality.

Application services should be deployable to wherever it is optimal (a decision mainly based on security and compliance concerns of mission-critical solutions). PaaS Clouds will play an important role on the application journey to the Cloud. PaaS is about Middleware running safeguarded on-premises or on the off-site Cloud. In my opinion it is desirable to choose a PaaS Cloud solution where application services could work without modification on both, on-site and off-site at a Cloud provider. 

For example Oracle provides a Virtual Assembly Builder (OVAB) (as part of the Cloud Application Foundation 12c) which capture the application topology and virtualizes from the environment. Afterwards the deployment could happen on conventional or engineered systems, but also on hosted Private or Public Clouds. So on-premises and off-site (remote) solutions are supported equally. BPM and SOA Suite developed services could benefit, but also pure Java solutions would be deployable on Oracle MWaaS-enabled Weblogic application servers (MWaas = Middleware-as-a-Service).

Conclusion

The A4 objective is to create solutions, allowing your company or organization to be innovative and competitive (by keeping the in-time, budget and quality constraints).

Gartner warned already last year: “Applications created in 2012 using traditional architecture models will be an IT-constraining legacy by 2016”. Jeff Bezos (Chairman and CEO of Amazon) realized quick the benefits of a Service-Oriented Architecture already 10 years ago. Therefore he formalized simple rules to transform Amazon internally to a SOA. Data and functionality has to be exposed through service interfaces which are the only way of communication. A4 also highly demands independent and autonomous components. Client-side applications must be decoupled from services and data. Companies and organizations without a SOA approach have to realize that it’s late, but the longer they wait, the closer they get to being Too Late.  

Healthy companies or organizations always seek to improve their ability to create software and general conditions that meets their needs at reasonable cost. A4 provides competitive advantages, so think about what A4 means for your company or organization.

Cloud-Native

Attemt to clarify and demystify the term of Cloud-Native As with many other IT terms, there is no clear and general accepted definition of...