cs330
play

CS330 September 14 and 16, 2005 Enterprise Architectures Johannes - PDF document

CS330 September 14 and 16, 2005 Enterprise Architectures Johannes Gehrke johannes@cs.cornell.edu http://www.cs.cornell.edu/johannes (Some of the slides are courtesy of Gustavo Alonso, Fabio Casati, Harumi Kuno, Vijay Machiraju and Ethan


  1. CS330 September 14 and 16, 2005 Enterprise Architectures Johannes Gehrke johannes@cs.cornell.edu http://www.cs.cornell.edu/johannes (Some of the slides are courtesy of Gustavo Alonso, Fabio Casati, Harumi Kuno, Vijay Machiraju and Ethan Cerami) Announcements • Laptops • Groups • Over the weekend • First homework • Requirement document assignment 2 The Big Picture (Revisited) WWW Site Internal User Visitor INTRANET, VPN THE WEB Internal Main Web Server Public Web Server Memory Cache Data Business Warehouse Transaction Application DBMS Server Server 3 NBA 518: Enterprise Data Design and Analysis 1

  2. Overview • Enterprise architectures • Internet concepts • URIs • The HTTP Protocol • The presentation layer • HTML, HTML Forms • Cookies • JavaScript • Style Sheets Layers and Tiers Client Presentation layer Client is any user or program that wants to perform an operation over the Application Logic Business rules system. Clients interact with the system through a presentation layer Resource Manager Business objects The application logic determines what the system actually does. It takes care of enforcing the business rules and establish the business processes. The application logic can take many forms: programs, constraints, business processes, etc. Client Client The resource manager deals with the organization (storage, indexing, and Server Business processes retrieval) of the data necessary to support the application logic. This is typically a database but it can also be Database Persistent storage a text retrieval system or any other data management system providing querying capabilities and persistence. 5 A Game of Boxes and Arrows • Each box represents a part of the system. • Each arrow represents a connection between two parts of the system. • The more boxes, the more modular the system: more opportunities for distribution and parallelism. This allows encapsulation, component based design, reuse. • The more boxes, the more arrows: more sessions (connections) need to be There is no problem in system maintained, more coordination is necessary. design that cannot be solved by The system becomes more complex to adding a level of indirection. monitor and manage. • The more boxes, the greater the number of There is no performance context switches and intermediate steps to problem that cannot be solved go through before one gets to the data. Performance suffers considerably. by removing a level of • System designers try to balance the indirection. flexibility of modular design with the performance demands of real applications. Once a layer is established, it tends to migrate down and merge with lower layers. 6 NBA 518: Enterprise Data Design and Analysis 2

  3. Top-Down Design top-down architecture PL-B PL-A PL-C top-down design PL-A PL-B AL-C AL-B PL-C AL-D AL-D AL-B AL-C AL-A AL-A RM-1 RM-2 RM-1 RM-2 7 Top-Down design top-down design 1. define access channels and client platforms client 2. define presentation formats and protocols for presentation the selected clients and layer m protocols e t s 3. define the functionality y s application logic necessary to deliver the n layer o contents and formats needed i t a at the presentation layer m r o resource management f 4. define the data sources n layer i and data organization needed to implement the application logic 8 Bottom-Up Design New Legacy • In a bottom up design, many of the application applicati basic components already exist. These are stand alone systems which need on to be integrated into new systems. • The components do not necessarily cease to work as stand alone components. Often old applications continue running at the same time as new applications. • This approach has a wide application because the underlying systems already exist and cannot be easily replaced. • Much of the work and products in this area are related to middleware, the intermediate layer used to provide a common interface, bridge heterogeneity, and cope with distribution. Legacy systems 9 NBA 518: Enterprise Data Design and Analysis 3

  4. Bottom-Up Design PL-B PL-A e r u bottom-up design t c PL-C e t PL-A PL-B i h c PL-C r a p AL-C AL-B u - m AL-D AL-B AL-C o AL-D t AL-A t o b AL-A wrapper wrapper wrapper wrapper wrapper wrapper legacy legacy legacy legacy legacy application application system system system 10 Bottom-Up Design bottom-up design 1. define access channels and client platforms client 2. examine existing resources and the functionality presentation they offer layer m e t s y 3. wrap existing resources s application logic n and integrate their functionality layer o i into a consistent interface t a m r o 4. adapt the output of the resource management f n application logic so that it layer i can be used with the required access channels and client protocols 11 One Tier: Fully Centralized • The presentation layer, application logic and resource manager are built as a monolithic entity. • Access through dumb terminals • This was the typical architecture Server of mainframes, offering several advantages: • no forced context switches in the control flow (everything happens within the system), • all is centralized, managing and controlling resources is easier, • the design can be highly optimized by blurring the separation between layers. 12 NBA 518: Enterprise Data Design and Analysis 4

  5. Two Tier: Client/Server • As computers became more powerful, it was possible to move the presentation layer to the client. This has several advantages: • Clients are independent. Server • Computing power at clients. • It introduces the concept of API (Application Program Interface). An interface to invoke the system from the outside. It also allows designers to think about federating the systems into a single system. • The resource manager only sees one client: the application logic. This greatly helps with performance since there are no client connections/sessions to maintain. 13 APIs in Client/Server • Introduced notion of a service • Introduced notion of an interface (how the client can invoke a given service) • Many standardization efforts due to need for common APIs server’s API service service service service interface interface interface interface r service service service service e v r e s resource management layer 14 Technical Aspects Of Two Tier • Advantages to Single Tier: • Take advantage of client capacity to off-load work to the clients • Work within the server takes place within one scope (almost as in 1 tier), • The server design is still tightly coupled and can be optimized by ignoring presentation issues • Still relatively easy to manage and control from a software engineering point of view • Disadvantages: • Connection management • Clients are “tied” to the system (no standard presentation layer). Connect to two systems, a client needs two presentation layers. • No failure or load encapsulation. If the server fails, nobody can work. • The load created by one client will directly affect the work of others since they are all competing for the same resources. 15 NBA 518: Enterprise Data Design and Analysis 5

  6. The Main Limitation of Client/Server • The responsibility of dealing with heterogeneous systems is shifted to the client. • The client becomes responsible for knowing where things are, how to get Server A Server B to them, and how to ensure consistency • Accessing more than two servers: • Very inefficient (software • The underlying systems don’t design, portability, code reuse, know about each other performance since the client • No common business logic capacity is limited, etc.). • Client is the point of integration • These issues cannot be solved (increasingly fat clients) with 2-tier 16 Three Tier: Middleware • Three layers are fully separated. • The layers are also typically distributed taking advantage of the complete modularity of the design 17 Middleware clients • Middleware is just a level of Middleware or indirection between clients and global application logic other layers of the system. • Introduces an additional layer of business logic encompassing all Local application logic underlying systems. • By doing this, a middleware Local resource system: managers • simplifies the design of the clients by reducing the number of interfaces, • provides transparent access to middleware the underlying systems, • acts as the platform for inter- system functionality and high level application logic, and • takes care of locating resources, accessing them, and gathering Server A Server B results. 18 NBA 518: Enterprise Data Design and Analysis 6

Recommend


More recommend