Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.

Slides:



Advertisements
Similar presentations
MS Access.
Advertisements

Database Architectures and the Web
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
TAC Vista Security. Target  TAC Vista & Security Integration  Key customer groups –Existing TAC Vista users Provide features and hardware for security.
Network Management Overview IACT 918 July 2004 Gene Awyzio SITACS University of Wollongong.
Technical Architectures
Distributed Systems Architectures
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
Essential Software Architecture Chapter Two - Introducing the Case Study Ian Gorton CS590 – Winter 2008.
Interpret Application Specifications
The Architecture of Transaction Processing Systems
JDBC. In This Class We Will Cover: What SQL is What ODBC is What JDBC is JDBC basics Introduction to advanced JDBC topics.
JMS Java Message Service Instructor Professor: Charles Tappert By Student: Amr Fouda.
5th Edition, Irv Englander
What is adaptive web technology?  There is an increasingly large demand for software systems which are able to operate effectively in dynamic environments.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Distributed Systems: Client/Server Computing
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Passage Three Introduction to Microsoft SQL Server 2000.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Platform as a Service (PaaS)
The Client/Server Database Environment
ODBC Open DataBase Connectivity a standard database access method developed by Microsoft to access data from any application regardless of which database.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
MobeSys Technologies MobeSys – helping you overcome mobile technology challenges.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Database Architectures and the Web Session 5
Introduction to distributed systems Dr. S. Indran 23 January 2004.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
4 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Event Management & ITIL V3
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Chapter 4 System Software. Software Programs that tell a computer what to do and how to do it. Sets of instructions telling computers to perform actions.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Placement Consultants Software Project team members: Jambukia Shweta(09it040) Komal Makadiya(09it055) Nilisha Jain(09it057)
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
Dr. Azeddine Chikh IS444: Modern tools for applications development.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Syllabus Management System. The Problem There is need for a management system for syllabi that: Provides a simple and effective user interface Allows.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
C OMPUTING E SSENTIALS Timothy J. O’Leary Linda I. O’Leary Presentations by: Fred Bounds.
Jini Architecture Introduction System Overview An Example.
© Paradigm Publishing, Inc. 4-1 Chapter 4 System Software Chapter 4 System Software.
ICS362 – Distributed Systems Dr. Ken Cosh Week 2.
Basics of JDBC Session 14.
3/12/2013Computer Engg, IIT(BHU)1 CLOUD COMPUTING-1.
Web Technologies Lecture 13 Introduction to cloud computing.
G042 - Lecture 09 Commencing Task A Mr C Johnston ICT Teacher
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
JDBC Chapter 1 JDBC Introduction
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
SQL Server 2012 Session: 1 Session: 4 SQL Azure Data Management Using Microsoft SQL Server.
Lab 301 Populating Template Data from a Third Party Data Source Justin Pava, Software Release Manager Andrew Schoonmaker, Software QA Engineer.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
Platform as a Service (PaaS)
5th Edition, Irv Englander
Platform as a Service (PaaS)
Database System Concepts and Architecture
Introduction to Cloud Computing
#01 Client/Server Computing
#01 Client/Server Computing
Presentation transcript:

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila

Information Capture and Dissemination Environment (ICDE) Ref: A Case Study Chapter 2 & 6 Essential Software Architecture, By Ian Gorton

Sequence Introduction to the Case Study 7.2 ICDE Technical Issues –7.2.1 Large Data –7.2.2 Notification –7.2.3 Data Abstraction –7.2.4 Platform and Distribution Issues –7.2.5 API Issues –7.2.6 Discussion

Introduction ICDE automatically captures and stores data that records a range of actions performed by a user when operating a workstation. For example, when a user performs a Google search, the ICDE system will transparently store in a database: –the search query string –copies of the web pages returned by Google that the user displays in their browser

Introduction This data can be used subsequently, (retrieved from the ICDE database) by third-party software tools that attempt to offer intelligent help to the user. These tools might interpret a sequence of user inputs, and try to find additional information to help the user with their current task. Other tools may crawl the links in the returned search results that the user does not click on.

Project Context An initial production version (v1.0) of ICDE was implemented by a small development team. Their main aim was to implement the Capture User Actions use case. ICDE v1.0 was only deployed in a small user trial involving a few users. The design of v1.0 was based upon a simple 2-tier architecture, with all components executing on the user’s workstation.

Project Context The collection and analysis components were written in Java and access the data store directly using the JDBC API. The complete ICDE application executed on Microsoft Windows XP.

Project Context

Data Collection: The collection component comprises a number of loosely coupled processes that transparently track the user’s relevant activities and store them in the Data Store. Data Store: This component comprises a commercial- off-the-shelf (COTS) relational database. Data Analysis: A graphical user interface (GUI) based tool supports a set of queries on the data store.

Business Goals

Constraints A time horizon of twelve months was set for ICDE v2.0. An interim release after six months was planned to expose tool developers to the API, and allow them to develop their tools at the same time that ICDE v2.0 was being productized and enhanced. As well as having a fixed schedule, the development budget was also fixed.

7.2 ICDE Technical Issues

7.2.1 Large Data The ICDE database stores information about the actions of each user when using their workstation and applications. All requires data to be written to the database. Some database tables can quickly grow to a size of several million rows. In order to lower deployment costs and management complexity, moving to a ICDE system shared amongst multiple users is a potentially attractive option because:

7.2.1 Large Data It reduces database license costs, as only one is needed per deployment, not per user. It reduces the specification of the PC that users need to run the ICDE application, as it doesn’t need to run the database, just the ICDE client software. Simply, this saves money for a deployment. It reduces support costs, as there’s only one shared ICDE server application to manage and monitor.

7.2.1 Large Data The two-tier option would likely provide better performance for small deployments, and be easier to build as less components would be needed (basically, no middle tier). The three-tier option would likely scale better as deployments approach a users, as the database connections can be pooled and additional processing resources deployed in the middle tier.

7.2.1 Large Data Memory usage in the middle tier is an important issue to consider, especially as clients (users and third party tools) might request result sets with many thousands of rows. If several clients request sizeable result sets simultaneously, this could easily consume all the servers memory resources, causing thrashing and poor performance. If potentially huge result sets can be returned from an API request, it means it is possible to create applications using the API that can fail unpredictably.

7.2.2 Notification There are two scenarios when event notification is needed. –A third party tool may want to be informed when the user carries out a specific action, for example, accesses a new site on the Internet. –The third party tools can share useful data that they store in the ICDE database with other tools. Therefore they need a mechanism to notify any interested parties about the data they have just written into the ICDE system.

7.2.2 Notification Flexibility is the key issue here. The ICDE development team cannot know what events or data the third party tools wish to share a priori (simply, the tools don’t exist yet). Consequently, some mechanism that allows the developers themselves to create and advertise events types “on demand” is needed. Ideally, this should be supported by the ICDE platform without requiring intervention from an ICDE programmer or administrator.

7.2.3 Data Abstraction The ICDE database structure evolved considerably from v1.0 to v2.0. The reasons were to incorporate new data items, and to optimize the internal organization for performance reasons. Hence it is important that the internal database organization should not be exposed to API developers.

7.2.4 Platform and Distribution Issues Third party tool suppliers want to be able to write applications on non-Windows platforms such as Linux. Some tools will want to run some processes on the same workstation as the user (on Windows), others will want to run their tools remotely and communicate with the user through ubiquitous mechanisms like and instant messaging. Again, the key here is that the ICDE solution should make both options as painless as possible.

7.2.5 API Issues The ICDE API allows programmatic access to the ICDE data store. The data store captures detailed, time-stamped information about classes of events of user actions Hence the API must provide a set of interfaces for querying the event data stored in the database. The ICDE API should also allow applications to store data in the data store for sharing with other tools or perhaps the user. In general, to encourage third party developers, the ICDE API has to be useful in terms of providing the developers with the facilities they need to write tools.

7.2.5 API Issues Be easy to learn and flexibly compose sequences of API queries to retrieve useful data. Be easy to debug. Support location transparency. Third party tools should not have to be written to a particular distributed configuration that relies on certain components being at known, fixed locations. Be resilient as possible to ICDE platform changes. This means that applications do not break when changes to the ICDE API or data store occur.

7.2.6 Discussion Taken together, the above issues weave a reasonably complex web of requirements and issues. The event notification requirements point strongly to a flexible publish-subscribe architecture to tie together collaborating tools. The need to support multiple platforms and transparent distributed configurations points to a Java solution with the various components communicating over protocols like RMI (Remote Method Invocation) and JMS (Java Messaging Service).

7.2.6 Discussion The large data and data store abstraction requirements suggest some layer is needed to translate API calls into the necessary SQL requests. The chosen solution selected a three-tier architecture along with a publish- subscribe infrastructure for event notification.

If you have any query please feel free to ask Phone: Fax: University Of Engineering & Technology Taxila Pakistan