260 likes | 417 Views
Architecture of Internet-Based Contemporary Applications. Lukito E. Nugroho Department of Electrical Engineering Gadjah Mada University. Environment: Distributed Computing. Every IBCA lives in a distributed computing environment Computer hardware Network
E N D
Architecture of Internet-Based Contemporary Applications Lukito E. Nugroho Department of Electrical Engineering Gadjah Mada University
Environment: Distributed Computing • Every IBCA lives in a distributed computing environment • Computer hardware • Network • Software elements spread in different parts of the network • A unified view of applications • Characteristics • Open extensible, heterogenous • Distributed needs mechanisms to control its operations
Important Issues in DC (1) • Interoperability: how to handle differences in hardware, operating systems, development languages and environment, etc. how they communicate ?
Interoperability comes in different levels: • Hardware level: e.g., data transfer between processor <-> RAM <-> disk • Network level: data communication between different computers in a network • Application level: data communication between different applications
Airline reservation system Three different applications with different platforms, OS, and programming languages
Important Issues in DC (2) • Security: protecting resources from unauthorized access and unexpected events • How can a database be secured from illegal access? • How can a server be protected from attacks? • How can a machine be protected from physical disturbances?
Network security Data security Physical security
Important Issues in DC (3) • Scalability: extending the size of a system without changing the way it works from local area network… … to the global Internet this has to be done with minimal change of the system
Important Issues in DC (4) • Performance: how a system can handle its load well • Amazon has >41 million active customers (2003) • Google servers receive >1000 requests per second • Performance is always associated with reliability (how strong a system can withstand disturbances/abnormal conditions) • Users do not care about the state of infrastructure; they look at the quality of the service provided (i.e., customers do not care if servers are down or networks are congested they demand services to be always up-and-running
How to Deal with the Issues in DC ? • Faster and more reliable machines and networks for performance & reliability issues (but not all performance/reliability problems can be solved at the hardware level) • Standardization of protocols for issues related to interoperability and scalability • Improved tools, measures, and procedures and access mechanisms for security issues • Internet technologies for scalability issues How can all of these be tied together at the application level ?
“Architecture” • Definition: a fundamental underlying structure and orgaization of a system • IBCAs need to have an architecture to deal with issues in distributed computing, due to the complexities of the issues/problems and their enormous impact The question is: what kind of architecture ?
N-Tier Architecture • N-tier (or multi-tier) architecture describes a multilayer abstraction of a structure, with each layer is developed and maintained as independent modules • Two-tier • Three-tier • Four-tier
Why N-tier Architecture ? • The concept of multilayer structure separates the handling of issues principle of “divide-and-conquer” to reduce complexity • Each layer focuses on specific issues • Independent maintenance (i.e., without affecting other layers)
Two-Tier Architecture A two-tier architecture Direct comm. between client and server
Three-Tier Architecture • The logic tier • separates users from • data layer. • Benefits: • Improved security • Application logic can be decoupled from user interface and database access
Four-Tier Architecture Example of a 4-tier architecture
Four-Tier Architecture • The fourth layer (web server layer) can be used to enhance interoperability with other applications, e.g., when other applications need to access some functionality of an application without having to understand the underlying details • Web service concept • Extensive use of XML technology
A Note on Application Logic Layer • Usually the most complex layer in an IBCA • Its complexity depends on the complexity of the application • Often activities spread over a broad spectrum • A planning task in an enterprise-wide decision support system may use resources from different areas • A computer-based learning system allows students to work with text, test, and practice modules • May require an additional layer for integration purposes • Special processing to incorporate information from different sources into a single piece • Special application-oriented data organization Case study: integration in enterprise information systems
Web as a Computing Platform • With the advance of Internet technology, Web has been gradually developing as a computing platform on its own the Web as a global computer with millions of processors that can be used to develop services • A service is a resource provided by one party that can be accessed by other parties • A service on the web (i.e., web service) is one that operates strictly based on web technology
Future Internet-Based Application Discussion: What are the impact of the emergence of Internet-based applications which traditionally only exist in stand-alone mode (e.g., office applications) ?
Service-Oriented Architecture • SOA describes a software architecture that defines the use of loosely coupled software services to support the requirements of business processes and software users • Definition of SOA: a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations • Resources on a network in an SOA environment are made available as independent services that can be accessed without knowledge of their underlying platform implementation
The Future of Application Architecture Stand-alone application architecture Web-based application architecture Every component is homogenous and located in the same execution environment (computer) Each component is heterogenous and can be located distributedly in different execution environments (computers)
The Future of Application Architecture • In the future, web can be regarded as a giant computer with each machine connected to it as processors • The beauty of this architecture is that application components are loosely decoupled from each other • They can be developed independently • They can use different platforms We will have “one world, one computer”