* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Server
Extensible Storage Engine wikipedia , lookup
Microsoft Access wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Database model wikipedia , lookup
Clusterpoint wikipedia , lookup
Object-relational impedance mismatch wikipedia , lookup
Introduction 3-Tier Client/Server Overview by Gary Rau DS513 April 29, 1999 http://people.ce.mediaone.net/grau/clientserver.html What is Client/Server? • 1) Client/Server describes the relationship between two computer programs in which one program, the client, makes a service request from another program, the server, which fulfills the request. • 2) Tiers describe the logical partitioning of an application across clients and servers. 2-Tier and 3-Tier Architecture • 2-Tier splits the processing load in two. Application logic runs on client, which communicates with data on server. • 3-Tier splits the processing load between clients that run user interface logic, application server running business logic, and database/legacy application. Characteristics of Client/Server Systems • • • • • • • • • Service Shared resources Asymmetrical protocols Transparency of location Platform independence Message-based exchanges Encapsulation of services Scalability Integrity 2-Tier vs 3-Tier Comparison I Characteristic 2 3 Comments System administration X Less complex; the application can be centrally managed on the server Security X High; fine-tuned at the service or method level Encapsulation of data X High; client invokes services or methods Performance X Good; only service requests and responses are sent between clients and servers 2-Tier vs 3-Tier Comparison II Characteristic 2 3 Comments Scale X Excellent; concentrates incoming sessions; can distribute loads across multiple servers Application reuse X Excellent; can reuse services and objects Ease of development Server to server infrastructure X High X Yes; via server-side middleware 2-Tier vs 3-Tier Comparison III Characteristic 2 3 Comments Legacy application integration X Yes; via gateways encapsulated by services or objects Internet support X Heterogeneous database support X Excellent; thin clients are easier to download as applets or beans; remote service invocations distribute the application load to the server Yes; can use multiple databases within the same transaction Rich communication choices X Yes; supports RPC, messaging, queued delivery, publish-and-subscribe, and broadcast 2-Tier vs 3-Tier Comparison IV Characteristic 2 3 Hardware architecture flexibility X Availability X Comments Excellent; all three tiers may reside on different computers, or the same computer; with component-based environments, the second tier can be distributed among multiple servers as well Excellent; can restart the middle tier components on other servers Client/Server Technologies • • • • • • File Servers Database Servers Transaction Servers Groupware Servers Object Application Servers Web Application Servers Client/Server with File Servers Client Communication Protocols Server Server Page Server Production Data Application File Server File Calls Client/Server with Database Servers Client Communication Protocols Server Server Page Server Production Data Application DBMS Server SQL Calls Client/Server with Transaction Servers Client Communication Protocols Server Server Page Server Production Data Application DBMS & TP Monitor Transactions Client/Server with Groupware Servers Client Communication Protocols Server Server Page Server Production Data Application Groupware Server Groupware Messages Client/Server with Object Application Servers Client Communication Protocols ORB ORB Server Server Page Server Objects Application Object Services Remote Method Invocation Client/Server with Web Application Servers Client HTML & Forms Communication Protocols Java Server Server Page Server Application HTML Documents CGI Application HTTP over TCP/IP Middleware I • The “/” in Client/Server • All the distributed software needed to support interactions between clients and servers • Client-side API to invoke a service • Transmission of request and response over network Middleware II • Provide platform for running server-side components; responsible for: • Load balancing • Integrity of transactions • High availablity • Secure environment Client/Server Software Infrastructure Client Middleware Server Service-Specific Browser Objects ODBC | TxRPC | Mail | ORB | HTTP DSM GUI/OOUI SNMP | CMIP | Tivoli/ORB Web Groupware NOS OLTP Directory | Security | Distributed File RPC DSM OS | Messaging | Peer-to-Peer Custom Transport Stack Server NetBIOS | TCP/IP | IPX/SPX | SNA DBMS DSM OS Component-Based Architecture • Develop in small steps (4X4) • Applications reuse components • Encapsulate services • Off-the-shelf, mix-and-match • Component environments get better with age Component Types • Services encapsulate a business function • Objects encapsulate specific data with the associated business functions • Stateless objects retrieve required instance data when needed, and update database when done • Stateful objects are unique. Changes in state must be captured by the infrastructure. Design Patterns • Greenfield • Turbocharger • Integrator Greenfield Pattern Graphical User Interface GUI/OOUI Services Database TP Monitor or OTM DBMS Turbocharger Pattern Graphical User Interface GUI/OOUI Services and Data TP Monitor or OTM DBMS Middle-Tier Database Existing System Integrator Pattern Graphical User Interface GUI/OOUI Services and Data TP Monitor or OTM DBMS Middle-Tier Database Existing System When to use 3-Tier • > 50 services or classes • > 1 application language or development organization • > 1 different data source • > 3 years application life (especially if modifications/additions are expected) • > 50,000 transactions per day • > 300 users on same system using same database • significant interapplication communication • growth expectations Secrets for 3-Tier Success • • • • • • • • • • Keep it simple Design up front Buy, don’t build Rely on industry standards Use a TP Monitor or OTM Take baby steps Use outside help Address system management during development Test, test, test Develop a rollout plan Overview of scripting lang. • Scripting languages are used for adding client side interaction, publishing live and dynamic data to web site and an ability to communicate with components in application server is making them a very important in building multitier architecture for organizations. Where scripting lang is important • 1) Datawarehousing. Plays a major role in publishing data out to web • 2) Internet and Intranet Applications. eg Fed Ex. • 3) Applications where deployment is major pain and has lot of remote users. Where they fit in mutitier architecture Client Middle Tier Web Server File System HTML Pages Data Runtime Environment Client Middle Tier Data Web Server File System HTML Pages Page Server Production Data Templates, Scripts Runtime Environment Client Middle Tier Data Web Server File System Page Server HTML Pages Production Data Templates, Scripts Transaction Server Components: Enterprise JavaBeans, ActiveX, CORBA Production Data Production Data Runtime Environment Client Middle Tier Data Web Server File System Page Server HTML Pages Production Data Templates, Scripts Transaction Server Interface Custom Server Components: Enterprise JavaBeans, ActiveX, CORBA Custom Objects Production Data Production Data Production Data Production Data Runtime Environment Client Very Thin Middle Tier Browser Data Web Server File System Page Server HTML Pages Production Data Templates, Scripts Transaction Server Interface Custom Server Components: Enterprise JavaBeans, ActiveX, CORBA Custom Objects Production Data Production Data Production Data Production Data Runtime Environment Client Very Thin Middle Tier Browser Web Server File System Page Server HTML Pages Thin Data Production Data Templates, Scripts Browser Transaction Server Components Interface Custom Server Components: Enterprise JavaBeans, ActiveX, CORBA Custom Objects Production Data Production Data Production Data Production Data Scripting in Multitier Architecture Client Very Thin Middle Tier Browser Web Server File System Page Server HTML Pages Thin Transaction Server Components Interface Rich Components Production Data Templates, Scripts Browser Stand-alone Application Data Custom Server Components: Enterprise JavaBeans, ActiveX, CORBA Custom Objects Production Data Production Data Production Data Production Data Thick or thin client ?? How user utilize system? Heavy data entry VB Client Heavy Batch processing VB Client Instant Report Access ASP Client Mainly External Access ASP Client System consideration based on heavy database access and development team Major vendors supporting scripting language deployment Page Server client Sybase PowerDynamo Active Server pages Netscape Livewire(javascript) Cold Fusion browser Database Thick client JaguarCTS MTS SilverStream Oracle app server NetDynamics Component Server Where CGI fits in • CGI. The classic way to perform server-side functions is via Common Gateway Interface (CGI). Many CGI programs use Perl, a scripting language well-suited to the task. However, you can write CGI programs in practically any language including C++, Python, and Java. Without careful planning, CGI can introduce security holes in your server, and CGI programs are usually hard to debug and difficult for casual programmers to write. Server side scripting(eg ASP) • ASP is a deployment environment for server side scripting • Client call the page server where the scripts resides. • Scripts then query against the database or components to create dyanamic content on the client. Server side scripting(eg ASP) • Jscript(competition of javascript) and Vbscript are the scripting languages used in ASP environment. • ASP files on the server can be updated at any time. Simply save the changes to the file and the script will be automatically compiled the next time the Web page is loaded. Server side scripting(eg ASP) • ASP includes five standard objects for global use • Request -- To get information from the user • Response -- To send information to the user • Server -- To control the Internet Information Server • Session -- To store information about and change settings for the user's current Web-server session • Application -- To share application-level information and control settings for the lifetime of the application VBscript(Overview) • Visual Basic Scripting Edition, also known as VBScript, enables authors to create scripts using a subset of the Microsoft Visual Basic language. If you are already a Visual Basic programmer, or if you are not a programmer but are looking for a scripting language that is easy to learn, VBScript might be the right language for you. VBScript is implemented as a fast, portable interpreter for use in Web browsers and applications that use ActiveX™ controls, Java applets, and OLE Automation servers. VBScript -- Features – Error handling. VBScript has a subset of the error handling provided by Visual Basic. This includes the error object and on error resume next. Error handling is very important when developing server-side code, since most of the functionality will require access to external COM objects, which could throw errors. – Formatting. VBScript has the ability to format dates, numbers, and currency built into the language. VBScript -- Features – Easier COM integration. Many COM objects return information in the form of a collection. VBScript has built-in support for iterating through collections – Standard Event-binding Syntax. Visual Basic developers will immediately recognize the object_event (sub button1_onclick) naming convention for event handlers. VBScript works in exactly the same way, so in any application that supports event binding (such as Internet Explorer, Outlook, and Windows Scripting Host), you can use this syntax for your event hook-up code. VBScript -- Advantages – Easy to understand and master. VBScript's biggest asset is that it's Basic, a language designed to be learned quickly. Visual Basic has brought Basic users some of the advantages of more complex languages, while not losing sight of the fact that the language should be easy to understand. – It's Visual Basic. All the skills learned with VB instantly apply to VBScript. Also, an enormous community exists to provide training, books, and magazines for learning Visual Basic. – Flexible. VBScript can be used in a wide variety of applications, and Microsoft is committed to ensuring that wherever script is part of an application, VBScript will be included. VBScript --- Syntax • <CENTER> • <P> • <H2>Hello, world sample</H2> • <INPUT TYPE=BUTTON VALUE="Click me" NAME="BtnHello"> • </CENTER> • <SCRIPT LANGUAGE="VBScript"> • <!-- Sub BtnHello_OnClick MsgBox "Hello, world!", 0, "My first active document" • End Sub • --> • </SCRIPT> • • JScript(Overview) • JScript is Microsoft's implementation of an ECMAcompliant scripting language (like JavaScript) that is targeted specifically to the Internet. Like VBScript, JScript is implemented as a fast, portable interpreter for use in Web browsers and applications that use ActiveX controls, Java applets, and OLE Automation servers. JScript is not Java and has nothing to do with Java. It is closer in syntax to C or C++. Jscript Features – Dynamic: JScript was designed as a completely dynamic language; that is, you can effectively redefine your program on the fly. While this has a number of potential disadvantages, it does give you the ultimate flexibility in your scripts. This is particularly useful in DHTML programming, since DHTML allows you to dynamically manipulate the object model. If you really want to drive DHTML, you might want to consider using JScript instead of VBScript. – Object oriented: JScript certainly isn't a traditional classbased, object-oriented language, but it does provide an effective alternative based on prototypes. This allows you to reap the benefits of object orientation without the statically defined nature of classes. Jscript - Features – Regular expressions: A main reason why Perl has such a huge following. Regular expressions add the ability to search for expressions in strings. This is exceptionally useful on the server and, increasingly, on the client. – Eval: Provides the ability to immediately evaluate code at runtime. This allows you to dynamically redefine logic dependent at run time. This is especially useful when used in conjunction with Remote Scripting, which works with VBScript as well. Jscript -- Advantages – Broad reach. JScript is pretty much guaranteed to run in any browser, anywhere. If your page really must work in any browser, this is the language for you. – All those books in the bookstore. How many books can there be? If you want to learn JScript, there are myriad books to help you. – Similarity to C and Java. If you are a C or Java programmer, the JScript syntax is going to be familiar to you. JavaScript Overview • Netscapes compact, object-based scripting language for developing client and server Internet applications. • Not Java ….. Or is it? Client-side JavaScript • Embedded directly with HTML • As with HTML, JavaScripts functions are built into the browser • Example code: <script language="JavaScript"> <!-document.write("Hello World!"); //--> </script> LiveConnect in JavaScript • Allows Java and JavaScript code to communicate with each other – From JavaScript, you can instansiate Java objects and access their public methods and fields – From Java, you can access JavaScript objects, properties and methods LiveConnect in JavaScript • Example Code: <SCRIPT> <!-if ((navigator.appVersion.indexOf("4.") != -1) && (navigator.appName.indexOf("Netscape") != -1) ip = "" + java.net.InetAddress.getLocalHost().getHostAddress(); document.write("Your IP address is " + ip); } else { document.write("IP Address only shown in Netscape with Java enabled!"); } //--> </SCRIPT> ServerSide JavaScript • Serve more Client JavaScript and HTML • Database Connectivity through LiveWire • Corba Object Connectivity through LiveConnect Database Connectivity - LiveWire Corba Connectivity - LiveConnect SilverStream Application Server SilverStream Overview • What is SilverStream • The birth and success of SilverStream SilverStream’s 3-tier Architecture Database Server Client SilverStream HTTP Server Database Server Tier 1 Tier 2 Tier 3 Tier 1: SilverStream’s client(s) Tier 2: SilverStream’s application server Tier 3 : the database server(s) Benefits of SilverStreams 3-Tier Architecture • Security management • Code Management • Data Valication SilverStream and Firewalls External SilverStream Client SilverStream Client P r o x y S e r v e r Internal F I r e w a l l Database Server SilverStream Server Database Server SilverStream Client SilverStream and Web Servers SilverStream’s client connections Client Server Session Info Session thread Client Connection initial connection execute request thread thread Connection Pool Session management Cookies thread SilverStream’s Database connections server/database connections Database Server Client Database Server Client SilverStream Server Database Server Client Database Connections and performance prefetch buffers SilverStream and Servlet Support javax.servlet. ServletRequest 1 URL Request service event Explorer javax.servlet. ServletResponse 2 Netscape 3 javax.servlet. ServletResponse HTTP Listener (Servlet) SilverStream and Page Management • Java Presentations • Dynamic Page Presentations Data Access and Queries in SilverStream Oracle Database Server Sybase Database request Client DSO Lotus Notes Result Business Objects and Corba Objects in SilverStream Other Features of SilverStream • SilverStream and E-mail • SilverStream and JAR(java archive) files • SilverStream and JavaBeans SilverStream Security Load Balancing and Fail-over in SilverStream In the Distance with SilverStream Load Balancing Topics • Concepts – What is Load Balancing? – Why do we need load balancing? – What is essential for a load balancer? • Architecture example: Silverstream • Common Algorithms • Vendors Concepts: What is Load Balancing? • Evenly distribute network processing, database access, transactions. • Example: Clustering – distribute incoming transactions evenly – redirect requests Concepts: Why do we need load balancing? • Handling multiple requests, while ensuring – optimal response time – quality performance • The cluster of servers have even workload and operate at maximum efficiency. Concepts: What is essential for a load balancer? • Retain the state of all servers it is managing. • Have a good algorithm efficient load balancing plan Example of a good load balancing architecture (Silverstream) ... Silverstream Load Balancing Architecture Web Server ISAPI or NSAPI Layer Dispatcher HTTP Load Balancer Application Server Application Server Cache Manager Application Server Silverstream Load Balancing Architecture Web Server ISAPI or NSAPI Layer Dispatcher HTTP Load Balancer Application Server Application Server Cache Manager • Dispatcher – receives client requests – consults load balancer Application Server Silverstream Load Balancing Architecture Web Server ISAPI or NSAPI Layer Dispatcher HTTP Load Balancer Application Server Application Server Cache Manager • Load Balancer – the process to: maintain a state of all servers; come up with a balancing plan Application Server Silverstream Load Balancing Architecture Web Server ISAPI or NSAPI Layer Dispatcher HTTP Load Balancer Application Server Application Server • Cache Manager – immediately update the cache – send invalidation commands (parallel) – able to assume all servers Cache Manager Application Server Common Algorithms • Sender Initiated Algorithms • Receiver Initiated Algorithms (more effective) • Symmetrically Initiated Algorithms • Adaptive Algorithms Some Vendors • Alteon networks Inc.: ACEswitch • ArrowPoint Communications Inc. Content Smart Switch • Coyote Point Systems Inc.: Equalizer