Phases of Business Software applications development:
1. Mainframe COBOL
2. Internet driven Client Server based Language Java/J2EE,.NET
3. ERP: interconnected Module pre-delivered domain based Forms/Reports allowing customisation.
4. Integrated systems, Mobile, Bigdata and on Cloud platform.
Interoperability : Bridge or Adapter Design pattern.
Integrated System seamless Coarse-grain integration offered by Web services. Having Restful web services implied SOAP can travel over as http request.
Web services based integration meant less use of COM/DCOM or CORBA.
The inter-operability brought by Web services Also meant Enterprise Application Integration vendors like Web methods and Tibco also employed Web services in Genral.
EAI Tools moved Data Across ERP from Poeplesoft HRMS payroll to SAP Financials General Ledger GL. Thus Forming Like Bridge or Adapter integration pattern.
The EAI Tool having maximum adapters had Edge.To Some Extent Web services based coarse grain integration Changed This a lot.
Every ERP also created its own EAI version like SAP XI/PI, Peopesoft integration broker,Oracle applications had Oracle Fusion Middle ware.
And Some times Back Buzzword was in Oracle : Oracle ERP would be Fusion based.
And Web services engulfed Service Oriented Architecture SOA started entering into Business applications and New Product Architecture.Hence ESB Enterprise service Bus (ESB) Controlling Those coarse grain services are abundant in market.
SOA was buzzword in 2008 at peak it existed before as well. New Architecture modifications started emerging Like SCA. SCA is also not new atleast 5 yrs there traction i this area.
Look at http://tuscany.apache.org/sca-java-architecture-guide.html
There Changes more affect Server side Coding.
What is There at client Side with AJAX components interacting with SOA in server side.
From Web 2.0 now we are in Web 3.0 and 4.0 started emerging with had effect on both server and client side code with semantic web but more focused on user Ease.
Ajax design pattern started emerging 2005 onwards. As more code started shifting towards Client side in form on AJAX, json, DWR web remoting languages like Dojo started to play better co-ordinations.
Look at http://directwebremoting.org/dwr/introduction/elsewhere.html
The Flash modified its code base to provide Flex in Action script you get neatly made components configurable by Action script interacting with Web services using Blaze-Ds providing RIA Rich internet Applications.
Every language has Framework
The Languages moved more into framework solving applications issues by employing Struts/Spring. From more program driven towards more declarative languages where properties are defined in XML and based on that Code is configured.
As Framework Solved issue like validation using Struts or Dependency injection in flow of code or using Annotations in Spring. The languages also matured to bring features like annotations in latest Java release. C++ templates entered into Java. And Generics made Entry. From Declarative programming to Dynamic Programming.
The Spring Came with inversion of Control I0C which took callback concept to a new height and as discussed dependency injections.
iphone has Cocoa framework, Php has zend , Java had Structs, hibernate (ORM) and Spring.
Language Entering New Areas:
Language continue to Enter in new areas Like data mining Java data mining API, .net data mining API, like image processing API or 2d/3d graphics API. Language integrating with Phone services using Session Initiation protocol SIP which make digital phone hence Skype call to phone a reality.
Language became better organized with unit testing framework like java junit, .Net nUnit.
kind of project management using maven.
Gang Of Four pattern: Structural, decorative, behavioural design pattern etc..
Enterprise design Pattern like one given by martin flower generalises the popular product /service offering behaviours.
The Known Unknown factor has reduced. What is still not captured is Unknown Unknown?
How to drive into knowledge like conceptualized by semantic Web or Ontology?
Can Algorithm behave like pattern ? What I mean Can it be Generalized?
Only thing possible to Algorithm is Space and Time Complexity Analysis The BigO.
Can we treat Unknown Unknown area charted by Algorithms into sort of categorisation?
Open Source program driven file based Real time databases:
Now There is requirement and maturity for program driven real time Database and platform Like using used by social networking products RealTime databases like Cassandra by facebook, Amazon’s Dynamo,