150 likes | 209 Views
Ift 458/598. Middleware programming & database security. 00. Overview. Dr. Joseph M Kuitche Information Technology ASU Polytechnic School. About Me. MS in Computer Engineering. Ph.D. in Industrial Engineering Area of research: Solar reliability, predictive modeling, and data analytics.
E N D
Ift 458/598 Middleware programming & database security
00.Overview Dr. Joseph M Kuitche Information Technology ASU Polytechnic School
About Me • MS in Computer Engineering. • Ph.D. in Industrial Engineering • Area of research: Solar reliability, predictive modeling, and data analytics. • Focus in IT Program: System Analysis & Design • Computer Organization & Architecture: CPU design & implementation, OS, electronic data, etc. • Programming & scripting languages: Just enough programming skills for developing APIs using scripting languages • Unix OS
Information System Structure • The layers of an IS logically represent functionality • These layers can be combined and distributed in different ways • When distributed, layers are referred to as Tiers • We can distinguish 4 different kinds of IS: • 1-tier • 2-tier • 3-tier • N-tier
1-tier • Pros • Merging of layers to optimize performance: use of low-level language, no context switching, no complex data transformation, no networking overhead • Little or no client side development, maintenance, or deployment costs • Cons • Monolithic structure • The server side is difficult and expansive to maintain
2-tier • Came with the emergence of PC (i.e., inexpensive hardware) • Presentation layer can be detached from the layers below and deployed on the cheaper and smaller machines • The best example of two-tier is client/server architecture • Client = presentation layer • Server = application layer and resource management layer
Client/Server • Clients can be • thin - provide only a minimum of functionality, and easier to port/install/maintain, require less processing capacity (wider range of computers) • thick - provide wide range of functionality: more sophisticated, offer richer functionality, large footprint and use considerable resources • Client/server is associated with many key developments in software for distributed systems • Remote Procedure Calls (RPC): interaction between client and server • Application Programming Interface (API) • stable published interfaces which can be used by clients • specify how to invoke a service, expected responses, effects on internal server state • C/S architectures became starting point for many crucial aspects of modern information systems • Services – individual server programs responsible for app logics, • Abstraction of service interface from the implementation • Standardization to address need for services (the last example are Web services).
2-tier – Contd. • Pros • Better computational load-sharing • The presentation layer can be customized based on client needs • Cons • Tight coupling between Application Logic and Resource Management layer: single server can serve only limited number of clients • Servers are typically running on a less expensive machines – limited scalability • Clients cannot be easily made to connect to the different servers • Leads to architecture in which Client integrates multiple servers
3-tier Architecture • clear separation between each of the three layers • Concepts introduced: Clear interfaces of resource managers (e.g., ODBC and JDBC); standardized interfaces for application logic code. • Pros • The mid-tier allows for a proper architectural integration of legacy servers • Improved scalability and reliability due to the possibility to distribute tiers • Cons • Complex • The mid-tier could be source of inefficiencies • Problematic connectivity through the Internet
N-tier Architecture • Pros • Provide a mean to better decoupling the presentation logic to clients • Additional Tiers can take care of supporting Internet connectivity • Cons • Complexity quickly grows with the number of Tiers
Middleware: Basic Definition • A middleware service is a general-purpose service that sits between platforms (or resources) and an applications • A middleware service must: • Meet the needs of a wide variety of applications • Have implementation that runs on multiple platforms • Support standard APIs
Middleware Programming The client application sends a request to the server for a resource; the server then processes the request and returns the response