|
The creation of new applications has been influenced by various software development paradigms, from structured programming and modular development to
prototyping, object-oriented, agent-oriented and aspect-oriented programming. Development methods today include component-based development, model-driven
development, re-factoring design and architecture patterns, extreme programming and agile development. Regardless of the preferred methodology, many developers
embrace integrated development environments and frameworks. These include Eclipse, Java Platform, Enterprise Edition (Java EE), Hibernate, Spring, .NET and various
AJAX frameworks. Frameworks provide efficiency with tested, reusable components, including components that use data access middleware. Using frameworks and
components raises the level of abstraction for developers, but they do not obviate the need for data access middleware.
Despite the appeal of data-aware components, Web 2.0, and AJAX (Asynchronous JavaScript and XML), not all information processing lends itself to mashup, scripting
or point-and-click solutions. Classic applications, such as order processing, business intelligence, design engineering and supply chain automation, require
sophisticated behind-the-browser technology. They can also be quite complex, such as Enterprise Resource Planning (ERP) suites with a database schema having
thousands of tables. We’ve traded monolithic applications and centrally managed computers for distributed systems composed of many parts (servers, network gear,
software libraries, databases and more). The tradeoff for distributing data closer to the user is an increased need for:
• Data integration software
• Versioning and configuration control tools
• High-bandwidth networking
• Distributed query capabilities
• Sophisticated authorization and authentication solutions
• Locales and globalization
• Load balancing and failover capabilities. |
The growth of distributed computing and databases fueled the creation of middleware for SQL access to data; middleware that supports the capabilities
described here. |