A Model Driven Development Environment.
The architecture is so designed that a reusable application called a service can be a scientific model depicting a real life situation.
A model can be a mathematical model, like a weather forecast model, that can analyze data from various sources and come to a conclusion or decision.
Or a neural network model that can make decisions by analyzing data from various sources.
A model driven approach enables a high performance application with all the logic embedded in it to be accessed by all and be used in various contexts wherever necessary.
A model can be implemented in a pure language like C,C++ or Java without any complications and the purity maintained by the programmer without the interference of the ever changing tools.
Why an MVC architecture?
Every business runs with various people at different levels of the hierarchy. Area Sales, Regional Sales, Country Sales etc.
Here too data management comes into picture. Though the products remain the same the area of work defines the work of an executive. A smaller area has smaller numbers and a bigger area of work has bigger numbers. But the analysis and reports submitted to the authorities remain the same. An MVC architecture caters to such a hierarchical model.
With proper security software in place a level of secrecy is easily maintainable in an MVC architecture.
Various views catering to the unique needs of each of the executives. Designed as dynamic dashboards providing real time data and analysis and displayed as working applets/portlets it gives an enhanced sense of responsibility to the executive and psychological satisfaction.
Also a real time ready to use dashboard removes the difficulties executives face in generating the reports by collecting the data, feeding it into a spreadsheet and applying the correct statistics to generate the reports.
Since each executive uses the same set of services though the data differs. It makes sense to reuse the services and MVC caters to such needs. With the services forming the model part of the architecture.
Why do I need a subscriber based model?
A business making and selling products should concentrate on their core area of work. And it makes sense to outsource all their software needs to a specialized institution.
For a software company it is value for money, with specialized people looking after all the software needs of many businesses.
Also a subscriber based model provides a consistent source of income for small and mid size companies and a cost effective way to improve their services.
Unlike the packaged model where a successful software is a cloudburst and a failed software drought. The subscriber based model demands constant innovation from the developer’s perspective, and a consistent job for the services executive.
The three perspectives.
The architecture should essentially be looked in three perspectives.
1. Scientific 2. Technological 3. Business
Scientific: As a generalized structure, the architecture is scientific. It heavily depends on all the scientific principles developed in the past in Physics and Mathematics. A scientific analysis of data approach is followed , basing on the fact that all information can be converted into analyzable data.
Also the architecture taps into the vast scientific prowess of people and attempts to simulate real life situations in a scientific manner by following a model based approach.
Technological: Nothing is possible without the latest and upcoming technologies. And there should be people who can use the technologies in the best possible manner. The architecture in its entirety utilizes and depends on almost all fields of the technologies, let it be programming languages, databases, broadband technologies, memory& hardware, extreme processing powers, and all the latest web technologies. It just attempts in utilizing the technologies for a scientific purpose.
A technological direction is provided, wherein it makes sense when new technologies fall in line to solve a specific purpose in this architecture.
Business: In the present circumstances, a business approach provides the best possible ROI in a short amount of time. Since most of the projects undertaken by the software community are business specific, the approach presents the same with structure and clarity.
By simplifying the interfaces at the user end for the business community, a definite advantage is achieved by removing the complexity of technology and high end software and letting the business community concentrate on their work.
Finally it makes sense when all people with various backgrounds and expertise can contribute in their own way for overall well being.
The technological tradeoffs.
The projects define a proof of concept. And a lot of work has gone into it to come to a certain conclusion.
By analyzing various combinations and approaches, it feels right to apply the concept in this particular way.
From a developer’s perspective it demands a high sense of specialization to design various services in a particular subject and a structured approach to solving problems.
An exhaustive set of services solving every aspect of the concerned subject would form a niche for a company.
Separating the services from the middleware makes it easy for other companies to utilize the specialized concepts.
Also it is necessary to separate the services to make them scalable. A service when necessary should be able to port to a high performance system. Hence a CORBA architecture that enables the service to work independently.
It is necessary to write the service in a core language without all the paraphernalia of a proprietary middleware to make the service portable.
A data management system makes the necessary changes by separating the GUI, services and databases utilizing the MVC architecture and the latest technologies in a prudent way making it futuristic too.
By separating the processing of services to a high performance system, it lets the web application server do its work of serving more efficiently.
With ever increasing speeds and decreasing costs of Processors, Broadband and Memory. There needs to be a suitable set of projects that utilize these technologies other than for entertainment. And this architecture enables the same and gives scope for innovation in a very strong way.
Enterprise Application Integration (EAI)
An improvisation by IBM of the above SOA architecture.
Considered the antique mainframe applications written in COBOL language as Services and integrated/linked them to the above architecture using CORBA interfacing.
Giving the old applications a new lease of life, without much spending, but transforming them into the latest.
Since most of the mainframe applications were business oriented, which were written by one time professionals, and the amount of time and money that would be needed to convert the COBOL applications into the latest object oriented languages like C++,Java . It was a good decision, providing all the old apps as solutions on multiple dashboards in a web perspective.
The SOA architecture supports multiple languages due to its interfacing with CORBA, which in turn interfaces to any of the olden languages.
Followed by SAP, which introduced the Exchange Infrastructure/Process Integration (XI/PI) methodology for integrating its once client server based applications to the new SOA by interfacing the ABAP applications using XI to the SOA.
Followed by other major vendors who too started designing adapters for their applications to interface with SOA.
A precursor to the cloud.
A name given to this entire architecture is “Cloud Computing”.
Anywhere data , anywhere service. Just based on addressing and passing parameters.
Bringing high performance computing to the mainstream.