February 18, 2008
The Delivery Platform of a Platform as a Service is the stacking of all the technology aspects I have addressed in my posts so far. The following diagram presents it in the context of applications built on top of it :
As you can see the actual implementation by a customer(in blue), be it a web site developer, an ISV of a saas application or an enterprise developer is limited to creating the Business UI – currently off the platform (His own web site or enterprise environment) thus preserving the ability to work with any presentation framework or platform, The Business logic and The Business Data– on the platform. Every other type of work required is done by working with the platform services. The life cycle can be viewed in the following diagram :
The platform delivers an end to end solution for the Software Development Life Cycle and to the Software Operations Life Cycle while preserving the high abstraction level required by advanced application development and providing a process and role enabled environment.
February 13, 2008
An application is never an island. An application is a part of an application portfolio an organization(like an enterprise,smb or web site) manages. Usually the application portfolio is associated with a line of business – a division or group with a specific business context – including different distribution channels(presentation and application). The organization needs to build an organization IT architecture which implements the business and IT strategy defined. This brings into the picture business processes which usually lead to composite applications. the composite applications are built using services and bring to the surface the enterprise service bus. In order to provide for real time capability applications are event enabled. Business events are emitted to a central engine providing Complex Event Processing and Operational Business Intelligence. This as you may recall is the “BIG PICTURE“. Internally an application may grow is size and would require splitting it to modules which have a specific business subject and are self contained. Modules manage their own data and have no dependency on other modules. The out come of all of the above is the enterprise architecture.
The following diagram is an example of the infrastructure architecture a hosted enterprise on MashupFactory will use :
As we saw before with applications the offering has to provide at least an equivalent quality of service copared to the on premise solution. In this case MashupFactory delivers a comparable and similar solution.
In my next post I will present the full stack of technology used to support the Platform as a Service environment.
February 12, 2008
The application architecture we see today in many of the web apps is based on a few frameworks(Spring+Hibernate+presentation) and on a set of patterns. This has basically become a best practice in the field. It is the referance architecture of web apps as we know it today. Below you can see a detailed description of such an application :
The diagram presents the layers of the application and the frameworks used to construct it. We can see there are two types of tasks at hand. The first is the wiring and gluing of all the frameworks together into a coherent application. The second (green) is the actual implementation(ie coding) . We are coding only the business domain in which we are doing the project. Practically there are three types of implementation artifacts at hand :
Business Screens – driving the user through the business forms.
Business Behaviour – the services which implement the business rules.
Business Data – The entities which comprise the business model.
When considering an alternative for on-premise environments it is important to review all the benefits a platform as a service offers and to verify they deliver a comparable quality of service in all the IT domains. Specifically for development, we need to understand if the abstractions and agility we can implement using the above architecture is available with such a platform. A rigid, limiting or inexpressive environment is a true barrier to entry.
Below you can see a detailed description of the software architecture a platform should offer as an application architecture template to its customers – developers in order to truly compete with the on premise rich set of features and abstractions :
In fact this architecture includes additional features not available today with spring which extend the issue of development and operations. It also provides a higher view of the application as a part of a larger application portfolio – not just a stand alone app. The presentation layer is not addressed at this diagram.
In my next post I will address the role of an application in the enterprise and how it fits into the “BIG PICTURE”.
February 10, 2008
When talking about the benefits offered by a level 3 platform we need to provide the high level description of the main benefits and then drill down to the specific issues in each dimension of IT we address. Lets start with the main benefits we expect to get from a platform product :
Build for Planning & Governance – Govern and Control projects in a clear and simple manner.
Deal with Business Domain only : Business Rules,Objects and Data – 70% code reduction and the use of proper abstractions and languages.
SOA, EDA, CEP and BPM Support – Advanced tooling for Enterprise Nervous System.
Focus on IT LifeCycle Management – Holistic view addressing all aspects of IT.
Support CMMI, ITIL, 6 Sigma -Industry bestpractice, excellence and efficiency.
Build to deliver unlimited scalability – Grid and Software infrastructure hide complexity.
Service Management, Monitoring & SLA – Tooling is Built in to the product itself.
Channel to Operational to BI to DataWareHouse – Addressing the business need at the core.
A platform product which fails to address these main concepts will be a far less productive option to consider. Each and every one of them is a true benefit by itself and a part of a critical mass enabling a true market change in the global IT market.
Below we can see the platform feature diagram. These are the category groups of features a product should deliver in order to provide a full alternative to today’s on premise solution :
We can add the following Dimension details :
- Strategy :
- The portfolio contains all projects and enables Architects to define the proper configuration for each one.
- Role assignment confine project members to their proper level of work.
- Development :
- The use of Domain Driven Design as a basic development concept.
- The focus on Domain Specific Languages.
- The development of Enterprise specific language.
- Operations :
- Built in Audit, Control and Monitoring.
- Built in Profiling, Prioritization and Diagnostics.
In my next post I will discuss the layering of a modern on premise application and compare it to a Platform as a Service application.
February 6, 2008
A level 3 platform – Platform as a Service – is looking to be the possible alternative to the on-premise stack of development and operation tools. but who will use it and why ? lets start with the why:
No Data Center operations – in the cloud economy of scale, lower TCO.
Unlimited SLA based scalability – Agile and reliable computing resources.
End to End In Browser SaaS solution – no configuration, plug and play productivity.
Portal based process oriented holistic environment – A higher level of IT productivity.
Business Domain development only – smart reuse of technology stack, Shorter TTM.
Environment Management and Deployment – Instant deployment to many environments.
Full Service Management and Monitoring – Built in to the technology stack.
BusinessEvent Bus -Enterprise Nervous System.
Overall order of magnitude IT cost & time reduction.
We can see that such a platform offers an order of magnitude improvement in the Strategy, Development and Management of IT for ISVs, Enterprises and Web sites. For those looking for shorter TTM and lower TCO this is the most appealing option.
However there are attributes which we find in today’s on premise technology and architecture which may become a barrier when considering the use of a level 3 platform product. I will address them in my next post.
February 6, 2008
What is a level 3 platform and why do we need it?
Lets start with the why. What is the problem with Enterprise IT(and for that matter Web IT and SMB IT) :
IT asked to deliver Business Value, Differentiation & Agility but stuck on data center ops.
IT – Business Alignment fails due to lack of Governance and Control in a fractured environment.
Development, Vendor and Tool integration is repetitive ,slow and costly.
Architecture Concepts : SOA BPM EDA CEP – very complex to create Enterprise Nervous System.
Ops requires a host of costly Management tools.
IT itself is not process and control enabled.
The above is the essence of issues we see today in IT. Lets expend on each of them :
Value, Differentiation & Agility are the fundamental expectations from the IT team. These are concepts which reside partly in the Business Strategy domain and partly in the IT Strategy domain. They are the main power source for positive change and express themselves in Architecture,Methodology,Planning and Execution. Data Center operations is not part of that. This activity “does not matter“. It can be view as a commodity and the only reason for it still being a part of IT is due to Software,Hardware and Networking issues. However this has changed lately with the Advent of Grid and Utility Data Centers and the emergence of web services and service oriented architectures. CPU power,Storage and networking can be bought by the pound and should be completely hidden and virtualized as an infrastructure stack.
IT – Business Alignment is the main factor driving IT Governance and Control. It is very important to have the supporting tools and environments to perform and enforce all the rules defined. However most of today’s IT environment is completely fractured. Portfolio management is self contained. no tooling exists to govern architecture and design of projects in order to properly fit them into the enterprise architecture. There is no rule repository for consistent business behaviour and service governance is not properly tied to the development.
Development of software is 70% repetitive. In order to express the business behaviour you have to build the “technical stuff” over and over again
. The main issue in addition to that is that current development technology is ill equipped to do Business Software Development. Java,C++ or C# do not provide the level of abstraction and the business expresivness
business domain based development
expect today. Tools and the Methodology are another issue. Agile or RUP and their tool stack are both “over qualified” for Business software development which mostly implement the porter “Value chain
As we progress in time specialization increases in the software field and the know how to create complex business systems becomes out of reach for in house development. Enterprises look to commoditise as much as possible the technology stack and focus primarily on their domain development. a platform providing the tooling
required is a necessity.
As today’s operations environment is heterogeneous and complex, accommodating various different ISV products each with specific requirements, the task of delivering high service level and operational excellence requires a multitude of tools and bears high cost.
The IT environment itself is not built based on the concepts of process and control. This issue reduces productivity and prevents IT from delivering the service level expected.
The platform should addresses all the above shortcomings and provide a cloud computing alternative which delivers a higher value for a lower cost. The virtualization of services and resources will enable the development, deployment and management of IT services transparently in the changing on-line economy. The SaaS Model maturity and the Web Service infrastructure are the big enablers of this market change.
February 5, 2008
In my last post I discussed the InSideOut metaphor of Enterprise IT Infrastructure. Making the Enterprise the number one player which all ISVs attend to and not the other way around.(ISVs building their product with no reference to their client overall needs). We are talking about the container that intelligently hosts components and systems. What is missing in today’s IT which will make this vision a reality?
Move all Data Center resources to Grid and Utility and provide unlimited resources and performance.(Virtual Enterprise)
Adopt a more Holistic approach, a top-down, end to end view of the IT Lifecycle.(IT Life-Cycle Management)
- Provide a Platform that creates one connected controlled environment.(Strategy, Development, Operations and Data)
- Provide it as a SaaS service.(plug-and-play)
- Provide Service Oriented Event Driven Architecture.(Organic Real Time)
Create open APIs enabling Agility and Innovation.(3rd party)
Subscription approach, Hosting model, Managed services.(Lower TCO)
Is there a name for such a monster? Well, actually there is : A level 3 Platform.Marc Andreessen describes in his blog the three different platforms which exist today and explains the difference. It is important to note that not all the attributes mentioned above appear in his description. These are differentiating attributes for such a platform.
In my next posts I will review what is a level 3 platform and address the differences between Ning,Force and MashupFactory.