180 likes | 366 Views
Software Engineering and Middleware A Roadmap. Author: Wolfgang Emmerich Presented by: Sam Malek. What is Middleware?. Layer(s) of software between client and server processes Hides the complexity of underlying protocol, OS, and Hardware configuration
E N D
Software Engineering and MiddlewareA Roadmap Author: Wolfgang Emmerich Presented by: Sam Malek
What is Middleware? • Layer(s) of software between client and server processes • Hides the complexity of underlying protocol, OS, and Hardware configuration • Simplifies Construction of large distributed systems
Why So Popular? • Mergers and Acquisition in corporate world • Incompatible IT Infrastructure • Unpredictable scalability of e-commerce sites • Unprecedented number of users
Why So Popular? (Cont.) • Shorter time-to-market demand • Easier integration of off-the-shelf components • Opinion: Off-the shelf reuse of components doesn’t always satisfy requirements • Opinion: Making modifications to them is costly and time consuming
Why So Popular? (Cont.) • Tolerant against Failures • Opinion: What about Middleware failures? • Opinion: Middleware failure will bring down the whole system • Provides high-level abstraction • Simplifies application construction, concurrency control, transaction management
Middleware Requirements • Network Communication • Abstracts away from protocol differences • Provides marshalling / unmarshalling services • Coordination • Synchronous vs. Asynchronous • Threading Policies • Reliability • Best effort, at-most-once, at-least-once and exactly-once • Transactions
Middleware Requirements • Scalability • Accommodate a growing future load • Concept of Transparency • Access Transparency • Location Transparency • Migration Transparency • Replication Transparency • Heterogeneity • Ability to cope with inherently different components • Hardware • OS platforms • Programming languages • Middleware
Middleware Solutions • Transactional Middleware • Example: IBM’s CICS and BEA’s Tuxedo • Multiple request to be executed in an atomic, consistency-preserving, isolated and durable manner. • All or None Pro: • Reliable Con: • Overhead • Manual Marshalling / Unmarshalling • Lack of standards
Middleware Solutions • Message-Oriented Middleware (MOM) • Example: IBM MQSeries, Sun’s Java Message Queue, Prism • Using Message / Notification to communicate Pro: • Ideal for Asynchronous Paradigm and group communication • Fault tolerant • persistent message queues Con: • Not as reliable as Transactional Middleware • Limited support for scalability and heterogeneity
Middleware Solutions • Procedural Middleware • Example: RPC (Remote Procedure Calls) • Available on Unix and Windows • Define server components as RPC programs • Clients invoke those procedures across the network Pro: • Automatic Marshalling/Unmarshalling Con: • Not very fault tolerant and scalable. • Not reflexive: Procedure of one RPC program cannot return another RPC program
Middleware Solutions • Object and Component Middleware • Example: CORBA, COM, RMI • Provide object components that can be accessed across the network to perform services Pro: • Very popular and powerful • Reliable:Transaction support • Sync/Async communication • Heterogeneous Con: • Limited scalability
State-Of-The-Art • Flexible Middleware • Trading: Component are located based on service types • Scalable Middleware • Shortcomings to achieve global distribution • Research in non-transparent replication • Real-time Middleware • Lack of prioritization
Middleware for Mobile ComputingCurrent Problems • Not enough bandwidth • Unreachability treated as Exception (error) • Too much transparency(1) • Point-to-Point communication assumption • Middleware for Mobile computing: Awareness vs. Transparency, Wolfgang Emmerich
Middleware for Mobile ComputingCurrent Research(1) • Awareness instead of Transparency • Ability to inspect the context and adapt the behavior of middleware accordingly. • Context awareness • Example: Component decides the type of communication protocol depending on the available bandwidth • Replication awareness • Example: Component tells the middleware what to ‘cache’ • Location awareness • Example: component decides which service provider is the optimal component to send it’s request. • Middleware for Mobile computing: Awareness vs. Transparency, Wolfgang Emmerich
Middleware for Mobile ComputingCurrent Research(1) • Treat Unreachability as Normal • Tuple spaces: coordination primitive • Use compression techniques to save bandwidth • Middleware for Mobile computing: Awareness vs. Transparency, Wolfgang Emmerich
Middleware and Software Engineering Research Two trends that have had a major impact on Middleware and Software Engineering research: • More than ever Middleware products are conceived to deliver immediate benefits in the construction of distributed systems in the industry. • Middleware vendors have a proven track record to incorporate middleware research results into their products.
Middleware and Software Engineering Research • Non-functional Nature of Middleware requirements • UML ignores non-functional concerns • Need for better technique to quantify non-functional Req. • Example: quantification model for response time or data volume • Define software architectures that meet non-functional requirements • Example: Develop MW-oriented ADLs
Conclusion • MW is the “glue” that makes the elements of cyberinfrastructure work together • 8 billion dollar industry by 2004