|
The move to client-server architecture for databases brought a division of labor when processing SQL queries, the details of which are often misunderstood. The complexities of distributed processing and the importance of best-of-breed middleware can elude even senior technical people, such as system architects, IT managers and consultants. Parallel processing, commodity servers and high-bandwidth networks advanced the distributed computing model and the distribution of data. Tuning database applications involved fewer variables when the databases were on centrally managed mainframes being accessed by local users. Distributed processing introduced the network round trip for a query, concurrency issues and the need for sophisticated client programming. It also created a class of middleware specifically for accessing server databases. Today’s model for query processing introduced the performance effect of middleware, network latency and distributed data. In a distributed processing environment, premium quality data access middleware can provide important functionality: - Implementation of database-specific communication protocols - Efficiency and security of network communications - Type and state mapping - Error checking - Caching data and connections - Authorization and authentication - Scalability and load balancing.
Parts, Components and the Emergence of Middleware In the modern era of computing, monolithic applications have given way to servers, clients, middleware and components. Our understanding of information technology (IT), software, applications and web sites is analogous to our relationship with the automobile. Depth and breadth of knowledge comes not from use, but from design, building and repairing. The person who designs, builds or repairs cars must understand quality requirements for parts and assemblies. The same is true of computing and information technology. Solutions for web computing, mobile computing and enterprise computing rely on a collection of hardware and software components. Knowledge of parts and assemblies is essential to being able to create and maintain systems in this era of distributed computing. The model of monolithic applications on a central computer gave way to resource sharing and partitioning logic across clients and servers. That meant an application’s parts and data were distributed and not centrally managed. Clients and servers communicated via remote procedure calls (RPCs) and exchanging messages, implemented with various types of middleware. The reliability, performance and security of middleware in processing messages or accessing databases became an important consideration for mission-critical software. As the computing paradigm changed, consistency also became an issue. Consistent behavior and compliance with standards became a critical feature for data access middleware. As a development paradigm, fabrication from parts solved problems of building monolithic applications. But in distributing processing across servers, clients, databases and middleware, we are reminded that a chain is only as strong as its weakest link. To build applications and web sites characterized by stability, security and excellent service, we must maintain quality when buying or building the constituent parts. Every part of a system must be robust, supportive of data integrity and transactional integrity, and consistent in its behavior. This is true of tool kits, servers, database software, network software and middleware. Attaining that assurance for middleware is best addressed by adopting a best-of-breed mentality when it comes to buying or building data access middleware. The defining characteristics of best-of-breed data access middleware include: - Broad connectivity and platform support - Scalability - Performance - Robustness, reliability, stability, high availability - Standards compliance, consistency - Security - Tools, language support.
Frameworks, Databases, Technology Behind the Browser 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.
|