1 / 18

Software Engineering and Middleware A Roadmap

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

Albert_Lan
Download Presentation

Software Engineering and Middleware A Roadmap

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering and MiddlewareA Roadmap Author: Wolfgang Emmerich Presented by: Sam Malek

  2. 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

  3. Why So Popular? • Mergers and Acquisition in corporate world • Incompatible IT Infrastructure • Unpredictable scalability of e-commerce sites • Unprecedented number of users

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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.

  17. 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

  18. Conclusion • MW is the “glue” that makes the elements of cyberinfrastructure work together • 8 billion dollar industry by 2004

More Related