middleware n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Middleware PowerPoint Presentation
Download Presentation
Middleware

Loading in 2 Seconds...

play fullscreen
1 / 42

Middleware - PowerPoint PPT Presentation


  • 150 Views
  • Uploaded on

Middleware. Ting Piao, Ishtiaq Alam, Michael McDougall. Motivation. Client/Server systems are very popular Hardware and software has evolved Systems getting more complex Systems need to be maintained & managed Many systems depend on legacy code

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

Middleware


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
    Presentation Transcript
    1. Middleware Ting Piao, Ishtiaq Alam, Michael McDougall

    2. Motivation • Client/Server systems are very popular • Hardware and software has evolved • Systems getting more complex • Systems need to be maintained & managed • Many systems depend on legacy code • How can we design C/S systems to make this easier?

    3. Outline • Introduction • Client/Server Systems • Middleware • CORBA • Conclusion

    4. Client/Server Systems • What is a client/server system? • Client - consumer • Server - producer • Referred to as a 2 tier system

    5. Client /Server System Server Client Client Client Client

    6. Not Client/Server

    7. Characteristics of the Parts • Client • Have a GUI • Not very concurrent • Not necessarily robust or reliable • Server • little or no UI • Highly concurrent • Must be robust and reliable

    8. Examples • Client/Server • World Wide Web (Web Server & Browser) • Databases, CVS • DNS, NNTP, Radio, TV, Cellphones • Not Client/Server • IP, UDP • Email (sort of) • CB-Radio, Walkie-Talkie

    9. Long Term Problems • Maintenance • Changing Platforms • Different Languages • Fat Server vs. Fat Client

    10. Maintenance • Client and Server evolve • Many systems rely on legacy code/machines • Old clients need to connect to new servers and vice-versa • Details of interaction should be isolated

    11. Changing Platforms • Client and server are often on different platforms • The Client platforms often evolves faster than server platform • Example: Win98 client connecting to VAX server. • Client and server should not be bound by platform of the other.

    12. Case Study: Nike Order Tracking Oracle DB2 Data via FTP Custom protocol SLOW Data via EZBridge terminal SunOS MVS

    13. Case Study: Nike • Problem: SunOS machine too slow for Oracle database • Solution: Upgrade to Solaris • Catch: EZBridge software could not be ported to Solaris • Nike forced to keep old SunOS machine

    14. Case Study: Nike Oracle DB2 Data via FTP Custom protocol EZBridge RPC Solaris terminal MVS SunOS

    15. Case Study: Nike • Problems: • Client machines switching to Win95, but Win95 can’t run custom protocol • SunOS machine too expensive to maintain • Mainframe needed upgrade • Software and SunOS machine not Y2K compliant • Nike system was too dependent on platform

    16. Different Languages • Good server language != good client language • Example • server needs reliable, simple language (C) • Client needs good GUI library (java, Visual C++) • Languages change, developers want to use the latest. • Client/Server interaction should not depend on a particular language

    17. Example: Language Dependency 1985 2000 Server In C Server In C C Data Structures ???? Client In C Client In Java

    18. Fat Server vs. Fat Client • “Fat” = does a lot of processing • Most servers are fat; they do the bulk of processing • In some cases moving processing to the client may be desirable • Examples: Java Applets, Shockwave, Compressed data

    19. Fat vs. Thin Client Server Fat Pictures, Text Thin Compressed data, Simple programs Thin Fat Large complex data, Complex programs

    20. Fat and Thin Examples • Thin Clients • Network Computers, TV Boxes • Web Browsers, X Terms • Fat Clients • Lotus Notes, Outlook • Web Browser + Plugins + Java

    21. Fat vs. Thin 2 • Fat Server / Thin Client • Clients are simple and cheap • Administration is centralized • Fat Client / Thin Server • More load balancing • May save bandwidth • More computational power (e.g. RSA contests) • Administration is scattered

    22. Fat vs. Thin Example: Stock Quotes from Yahoo .gif Image Yahoo

    23. Fat vs. Thin Example: Stock Quotes from Yahoo Table + Program to draw graph Yahoo Jan 1:100 Jan 2:103 Jan 3:99 Jan 4:110 ... void drawGraph() { ... }

    24. Fat vs. Thin Example: Stock Quotes from Yahoo A link to the DB + a program to retrieve table + a program to draw graph Yahoo void connect() { ... } void drawGraph() { ...} DB Jan 1:100 Jan 2:103 Jan 3:99 Jan 4:110 ... query

    25. Moving the Fat • Ideal world: move processing between client and server arbitrarily • Example: • if bandwidth small send compressed data • if bandwidth big send uncompressed data • Moving the fat from server to client should be as automatic as possible

    26. Good design • A well-designed client/server system will • hide communication details • be language and platform independent • enable processing on client or server • Middleware has emerged as a solution to these problems

    27. Middleware Logical View Physical View Server Server Middle ware Middleware Middle ware Client Client

    28. Middleware • Distributed Software • Communication • Transparent Access Features : - Forwards client request to the network - Includes API’s (Client to Server) - Sends requested information back to client - Runs on both Client/Server - Competition in C/S

    29. Middleware(Cont’d) A General Purpose Service - Application - Platform specific services Examples : - ODBC, SQL, Oracle Glue - Microsoft Exchange, Lotus Notes - HTTP, SSL - CORBA, DCOM

    30. CORBA Supported by HP, IBM, Novell, Netscape, Oracle, Sun Object Request Broker (ORB) - Defines Object Model - Component Client or Server? - Location Transparency - Intercepts methods Client Server

    31. Interface Definition Language (IDL) • Platform, Language independent • Specifies services by object • Error Handling • Superset of C++

    32. IDL Format module <identifier> { /* define a naming context */ <type declarations>; <constant declarations>; <exception declarations>; interface <identifier> [:<inheritance>]{ /* class definition */ <type declarations>; <constant declarations>; <attribute declarations>; <exception declarations>; [<op_type>]<identifier>(<parameters>)/* method declaration */ [raises <exception>] [<context>]; ... [<op_type>]<identifier>(<parameters>)/* method declaration */ [raises <exception>] [<context>]; } /* more interfaces here */ }

    33. IDL(continued) • Client IDL - communicate static interfaces - routes client invoked local methods

    34. ORB Routing Method invocations Server Server Client Client Client Client

    35. Client /Server System Client /Server System Server Server Client Client Client Client

    36. Client IDL(cont’d) • Dynamic Invocation Interfaces • Server IDL - denote static interfaces - similar to Client IDL stubs

    37. How CORBA works • How objects locate another - Naming Service(Unique signature) - Trader Service Of interest • CORBAservices(system level) • CORBAfacilities(V/H frameworks)

    38. Case Study: Nike Oracle DB2 Data via FTP Custom protocol CORBA CORBA Solaris terminal MVS

    39. DCOM • Created by Microsoft • Similarity - uses IDL - separates interface from functionality - interfaces allow transparency • Differences - “Objects” as collection of interfaces - Runtime naming/trading devices - Multiple inheritance of interfaces

    40. Advantages of CORBA - Portable - Faster - ORB integrates with C++ objects, JAVA - Dominant Model - Open Standard in Distributed Computing

    41. Conclusion • Client /Server systems need to be flexible and maintainable • Middleware makes Client/Server systems flexible • CORBA is a tool for implementing Middleware

    42. References • Scott M. Lewandowski, Frameworks for Component-Base Client/Server Computing, ACM Computng Survey, March 1998, pp. 1-27. • Philip A. Bernstein, Middleware: A Model for Distributed System Services, CACM, Feb 1996, pp. 86-98. • www.corba.org - Corba Info • http://www.iona.com/info/aboutus/customers/nike.html - Nike case study