Saturday, September 5, 2015

What Happened to Enterprise Systems Architecture?

I spent many years designing and implementing enterprise systems.  On two separate occasions I had the privilege of leading the design of enterprise wide systems for two major Fortune 100 insurance companies. 

In one case we moved from a collection of batch programs (remember when keypunch operators would key punch forms and we ran programs that read the cards, validated the data and updated master files then produced reports?)...   to a mainframe CICS based on-line system using an integrated relational database.

In the second case we replaced an AS/400 5250 based system with a relational database and Web Based model. 

I studied enterprise modeling and had the privilege of meeting James Martin and Dr. C.F. Codd as well as several other notable meteorologists of the 1980's and 1990's. 

I got into a battle which I won with the head of the computer science department of a major southern California university over CRUD based data base application design and enterprise systems design (I was the enterprise systems advocate and I won)!  I not only won but had a major convert.

I was working for IBM when SOA was introduced and became the architecture DE-jour.  During my short stay with IBM I noticed a major disconnect between business and technology.  Thanks to Lou Gersnter, IBM had dismantled its sales organization and basically lost contact with its customers.

IBM has some of the finest technical minds in the world working in its labs, but they lacked the control and guidance of business centered focus and requirement definition. 

Today I am studying REST and trying to fit RESTful API's into a major corporation and support the business.  I have read paper after paper on REST and they all describe the HTTP interface, the concept of dealing with nouns instead of verbs, and the technology to implement REST... 

Virtually every paper I have read or video I have watched at best have a trivial application like creating, updating and maintaining a blog used as an example...  No one talks about processing an insurance application, adjudicating and paying a claim, or even billing a client for a service rendered or product purchased and shipped.

I am in total agreement with the technical concepts of REST which is a stateless interface that allows your application to be deployed across multiple machines located at multiple data centers around the globe with data replicated as well providing a bullet proof (failure proof) system in a cloud based implementation. 

BUT, how do you map this thing (REST) back to the basics of conducting business?  If I find a solution, I'll share it here, but for now, I would love to hear from anyone who thinks they have a solution to building business systems with REST.