You are on page 1of 59

Enterprise Computing

Unit 1A Enterprise Foundations


Balasubba Raman Guruswamy

TEXT BOOKS:
1. 2.

Reference

Paul J Perrone, Venkata S.R. Krishna R and Chaganti, "Building Java Enterprise Systems with J2EE", Techmedia , New Delhi, 2000 George Reese, Database programming, with JDBC and Java" Second Edition, OReiliy Publishers , New Delhi, 2000

REFERENCE BOOKS: 3. 4. 5. Dustin R. Callaway - "Inside Servlets" - Addison Wesley Longman Inc, New Delhi, 2001 Tom Valesky - "Enterprise Java Beans" - Addison Wesley Longman Inc. New Delhi, 2000 Ed Roman-"Mastering EJB-John Wiley & Sons, New Delhi, 2001

26 February 2013

Enterprise Foundations Enterprise Computing

EC Unit 1A - Syllabus
Enterprise Architectural overview - Object oriented software development for enterprise - Component Based software development for enterprise

Chapter 1,2 3 of Reference 1

26 February 2013

Enterprise Foundations Enterprise Computing

What is Enterprise Computing?


What is an enterprise?

Large organization such as multinational corporation, university, hospital, research laboratory, or government organization

Set out to accomplish certain goals

Requires special computing solutions because of its size and complexity Enterprise computing Use of computers in networks that encompass variety of operating systems, protocols, and network architectures
26 February 2013 Enterprise Foundations Enterprise Computing
Next

How does information flow within an enterprise?


Enterprise manages large amounts of information over an extensive geographical area and disparate groups of people

26 February 2013

Enterprise Foundations Enterprise Computing

Next

How are enterprises organized?

Most are organized in a hierarchy

26 February 2013

Enterprise Foundations Enterprise Computing

Main Components of Enterprise


Pursuit of the enterprises goals are essential for
Survival of the enterprise Growth of the enterprise

Physical resources & assets


Computing eqpt, manufacturing facilities, product supplies, corporate accounts, etc

People & users


Customers, employees, contractors, partners

Enterprise information & Knowledge


26 February 2013 Enterprise Foundations Enterprise Computing 7

Primary Objectives of the Enterprise


Preserve & grow customer base Growth & efficiency of employee base Growth of partnership base Growth & protection of resources / assets Sensitivity to
Changing customer base Changes in resources / assets Changes in information & knowledge
Enterprise Foundations Enterprise Computing

26 February 2013

What is enterprise system architecture?


A method for managing your business or enterprise:
Decision making tool

Change management tool


Knowledgebase of your business or enterprise

26 February 2013

Enterprise Foundations Enterprise Computing

In the Information Age


How do you manage the increasing complexity of your enterprise?
How do you manage the increasing rate of change? How do you meet the demands of your constituency (or customers) quicker and more efficiently? When someone leaves your enterprise, do you retain their knowledge?
26 February 2013 Enterprise Foundations Enterprise Computing 10

Why enterprise architecture?


Provides a method for writing things down (develop blueprints) Shows you the impact of moving a wall (complexity and change)

Provides the plan on how to move the wall (change management)


Helps you retain employee knowledge (becomes knowledgebase of enterprise)
If you dont have an architecture, you change by trial and error (which is high risk)
26 February 2013

Enterprise Foundations Enterprise Computing

11

26 February 2013

Enterprise Foundations Enterprise Computing

12

Generic enterprise system architecture (1)


Enterprise Use Interfacing
Means to present content to both web-based and standard applications-based users

Enterprise Data Enabling


Means to access, store and manage enterprise info. And knowledge via enterprise databases

Distributed Enterprise Communication


Means to access info and applications through out a distributed enterprise system

Common Services for Distributed .


Provides a set of common services used by distributed object communications paradigms Global services that permeate every aspect of a distributed enterprise system

26 February 2013

Enterprise Foundations Enterprise Computing

13

Generic enterprise system architecture (2)


Enterprise Systems Assurance

Provides secure, reliable, available, maintainable and safe qualities of an enterprise system

Enterprise Web Enabling

Provides for connectivity of the enterprise to the internet/web and for generating Web-based presentation content

Enterprise Applications Enabling


Provides for the middle tier of application logic management with connectivity to legacy enterprise application logic Provision of new enterprise application logic Connectivity to distributed enterprise applications and embedded devices Business-to-business connectivity with commerce partners

26 February 2013

Enterprise Foundations Enterprise Computing

14

Object-Oriented Software Development

26 February 2013

Enterprise Foundations Enterprise Computing

15

Elements of Object-oriented Software


Stage 1: Assembly level programming Data exposed to direct access by assembly language instructions Stage 2: Higher-level programming languages Construction of programs in a more natural and human-readable form Stage 3: Code could be modularized by partitioning software into separately compilable modules using compilers and linkage technology Stage 4: Software engineering practices helped encapsulate such modules into functional units Stage 5: Object oriented programming modularity of behaviour and encapsulation of state new programming paradigm

Class Discrete module of code has set of variables and methods Object An instance of a class in memory Handles Reference to distributed object Network address information and an object ID Package collection of one or more objects which have cohesive logical relation and offer specific service
26 February 2013 Enterprise Foundations Enterprise Computing 16

Modeling the Real World


A software system provides a solution to a problem in the real world
Consists of two essential components:
Model: abstraction of a part of the real world Algorithm: captures the computations involved in manipulating or processing the model

Software system
Abstraction Real world Interpretation Model Algorithm

Enterprise Foundations Enterprise Computing

17

How to Model Real World?


Programming languages
Tools to describe computer models

Programming models
Computation-oriented model (50s ~ 60s) Data-oriented model (70 ~ 80s) Object-oriented model (90s ~ )
Balanced view between data and computation

Component Based Model (2000 ~ ..)

26 February 2013

Enterprise Foundations 18 Enterprise Computing

Why O-O Model?


Possible to directly represent real world objects in the computer system

Data-oriented model

Object-oriented model

Real world

Software system

Real world

Software system

Enterprise Foundations Enterprise Computing

19

Iterative Development
Key characteristics

Consists of a number of success iterations Each iteration produces a working program

Build system incrementally


Monolithic approach of waterfall model
Benefits

Facilitates and manage changes


Minimize and prevent changes
Examples

Rational Unified Process (RUP) Extreme Programming (XP)


26 February 2013 Enterprise Foundations Enterprise Computing 20

Object-Oriented Development
Approach

Focuses on improving the maintainability and reusability of software systems through a set of techniques, notations, tools, and criteria.
Activities

Conceptualization
Object-oriented analysis and modeling Object-oriented design Implementation Maintenance
26 February 2013 Enterprise Foundations Enterprise Computing 21

OO Development Process
Project Charter Requirement Analysis System Behavioral Analysis

Implementation
Unit Test Assembly

Thread Test
Configuration Specification System Test Deployment

System Interface Analysis


Preliminary System Design Detailed Design

Maintenance

26 February 2013

Enterprise Foundations Enterprise Computing

22

Project Charter

Detailed Activities (1)

Conceptualization To establish the vision and core requirements of the software system to be developed.

Requirement Analysis
Perform analysis of expected system behaviour and system interfaces System behavioural Analysis
Use-case analysis identification of primarily user-driven scenarios Use case sequence of steps of each behaviour Actors in use case - Entities involved with realising the outcome of the use case Pre-condition Initial state of the system before the beginning of the use case Post-condition State of the system after the use case

System Interface Analysis


Interfaces to and from the system need to be analyzed and modeled External system interfaces, legacy system interfaces, database models, User interfaces
26 February 2013

Enterprise Foundations 23 Enterprise Computing

Detailed Activities (2)


Object-oriented analysis and modeling
Build models of the systems desired behavior, using notations such as the Unified Modeling Language (UML) Capture the essential relevant aspects of the real world and to define the services to be provided and/or the problems to be solved Simplify reality to better understand the system to be developed

Preliminary System Design


Transforming conceptual-analysis model and transforming for realizing using COTS or custom software Capture the primary design components Conceptual design models describe logical relations between concepts and design constructs class diagrams

Detailed design
Create an architecture for implementation Represented in terms of objects & classes and relationships among them Package names, class names, core public methods, i/p, o/p parameters
26 February 2013 Enterprise Foundations Enterprise Computing 24

Detailed Activities (3)


Implementation
Implement the design by using an object-oriented programming language Involves custom code writing, integrating with COTS

Unit Test
Testing at class and package level Performed during implementation of a particular class & collection of classes

Assembly
Identify a subset of the entire system behaviour, along with the code

Assemble individual elements into discrete elements of behaviour


Integrate the code with a target platform and environment in mind

Thread Test
Demonstrating that the assembled classes interoperate Test threads of behaviour on assembled elements provides incremental assurance
26 February 2013 Enterprise Foundations Enterprise Computing 25

Detailed Activities (4)


Configuration Management
Define COTS and custom software configurations and versions Should include instruction for building and deploying the software

System Test
Test fully assembled and configured system Load testing, system security testing, performance testing

Deployment
Deploy the system as per the configuration specification Deployment environment should closely resemble system test environment

Maintenance

Manage post delivery evolution effectively Maintain operational software for bug fixes and upgrades Time to repair should be minimum and ease with which upgrades are deployed should be maximized
Enterprise Foundations Enterprise Computing 26

26 February 2013

O-O Processes (e.g., RUP)

26 February 2013

Enterprise Foundations 27 Enterprise Computing

Classes
Name TariffSchedule zone2price getZones() getPrice()

TariffSchedule Table zone2price Enumeration getZones() Price getPrice(Zone)


Signature TariffSchedule

Attributes

Operations

A class represent a concept. A class encapsulates state (attributes) and behavior (operations). Each attribute has a type. Each operation has a signature. The class name is the only mandatory information.

UML (Unified Modeling Language)


An emerging standard for modeling object-oriented software Resulted from the convergence of notations from three leading object-oriented methods
OMT (James Rumbaugh) OOSE (Ivar Jacobson) Booch (Grady Booch) Goal of UML Provide a standard notation for use by all object-oriented
methods and to select & integrate the best elements of precursor notations

Commercial tools: Rational (IBM),Together (Borland), Visual Architect (business


processes, BCD)

Open Source tools: ArgoUML, StarUML, Umbrello Commercial and Opensource: PoseidonUML (Gentleware)
26 February 2013 Introduction - UML OBJECT ORIENTED SOFTWARE ENGINEERING 29

UML Diagrams

26 February 2013

Introduction - UML OBJECT ORIENTED SOFTWARE ENGINEERING

30

UML Diagrams
Use case diagrams
Describe the functional behavior of the system as seen by the user.

Class diagrams
Describe the static structure of the system: Objects, Attributes, and Associations.

Sequence diagrams
Describe the dynamic behavior between actors and the system and between objects of the system.

Statechart diagrams
Describe the dynamic behavior of an individual object as a finite state machine.

Activity diagrams
Model the dynamic behavior of a system, in particular the workflow, i.e. a flowchart.
26 February 2013

Introduction - UML OBJECT ORIENTED SOFTWARE ENGINEERING

31

Use Case Diagrams


Package
SimpleWatch

Actor
ReadTime

WatchUser

SetTime

WatchRepairPerson

Use case
ChangeBattery

Use case diagrams represent the functionality of the system from users point of view
Introduction - UML OBJECT ORIENTED SOFTWARE ENGINEERING

26 February 2013

32

Class Diagrams
TariffSchedule

Enumeration getZones() Price getPrice(Zone)

Trip zone:Zone price:Price

Class diagrams represent the structure of the system. Class diagrams are used
during requirements analysis to model problem domain concepts during system design to model subsystems and interfaces during object design to model classes.
26 February 2013

Introduction - UML OBJECT ORIENTED SOFTWARE ENGINEERING

33

Class Diagrams
Class Multiplicity
1 2 PushButton state push() release() 1 LCDDisplay blinkIdx blinkSeconds() blinkMinutes() blinkHours() stopBlinking() referesh() SimpleWatch 1 1 1 2 Battery load() 1 Time now()

Association

Attributes Operations

Class diagrams represent the structure of the system


26 February 2013

Introduction - UML OBJECT ORIENTED SOFTWARE ENGINEERING

34

Dynamic Behaviour Diagrams


Scenario diagram is used to design modelling view to indicate dynamic behaviour between object instances
Sequence diagram

26 February 2013

Enterprise Foundations Enterprise Computing

35

Sequence Diagram
Object
:WatchUser :SimpleWatch :LCDDisplay :Time

pressButton1() pressButton1() pressButton2()

blinkHours() blinkMinutes() incrementMinutes() refresh()

pressButtons1And2() stopBlinking()

commitNewTime()

Message Activation Sequence diagrams represent the behavior of a system Introduction - UML as messages (interactions) between different OBJECT ORIENTED SOFTWARE ENGINEERING objects

26 February 2013

36

Statechart Diagrams
Event
button1&2Pressed Blink Hours

Initial state
button2Pressed

State
Increment Hours

Transition
button1&2Pressed

button1Pressed button2Pressed

Blink Minutes

Increment Minutes

button1Pressed button2Pressed

Stop Blinking

Blink Seconds

Increment Seconds

button1&2Pressed

Final state
26 February 2013

Represent behavior of a single object with interestingUML Introduction - dynamic behavior.


OBJECT ORIENTED SOFTWARE ENGINEERING 37

Component based software development

26 February 2013

Enterprise Foundations Enterprise Computing

38

Enterprise Components
OO Software
Classes Encapsulate fine-grained concepts of a problem and solution Objects - Instances of classes created during the runtime operation of the system

Components
Coarser-grained means to encapsulate problems Represent a logical collection of one or more finegrained classes Can be more directly produced from analyses and design models
26 February 2013 Enterprise Foundations Enterprise Computing 39

Component models
A component model is a definition of standards for component implementation, documentation and deployment Examples of component models
EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

The component model specifies how interfaces should be defined and the elements that should be included in an interface definition
26 February 2013 Enterprise Foundations Enterprise Computing 40

Elements of a component model


Cu stomis ation Naming conv en tio n Co mp ositio n Interface defin ition Sp ecif ic interfaces Meta-data acces s Do cu men tatio n Pack ag ing Ev olution s upp or t

Interfaces

Us ag e informatio n Co mp onent mo del

Deploy ment and u se

26 February 2013

Enterprise Foundations Enterprise Computing

41

Middleware support
Component models are the basis for middleware that provides support for executing components
Component model implementations provide:
Platform services that allow components written according to the model to communicate Horizontal services that are application-independent services used by different components

To use services provided by a model, components are deployed in a container. This is a set of interfaces used to access the service implementations

26 February 2013

Enterprise Foundations Enterprise Computing

42

Component interfaces
Interfaces in a component model is primary contract between component and other code entities. Other code entities may be containers, application code, other components, other component models, ....
Provides interface Defines the services that are provided by the component to other components. Requires interface Defines the services that specifies what services must be made available for the component to execute as specified.

26 February 2013

Enterprise Foundations Enterprise Computing

43

Component interfaces

Requires int erf ace Defin es th e services f thecom rom ponents environ men t that it us es Co mpo nent

Provides int erf ace

Defin es th e service that are prov id ed by th e comp on en t to other compon en t

26 February 2013

Enterprise Foundations Enterprise Computing

44

Component Interface types


Component APIs
Defines a set of standard interfaces that applications can use to tap the services of a component

Design Patterns
A set of classes, interfaces and their relationships that provide a common design solution to a common problem classification

Component SPIs
Defines a set of standard interfaces that the provider of service adheres to and implements

Component-to-Container interfaces
Defines the interface to a container environment assumed by a component

Container-to-Component interfaces
Defines the interface to a component assumed by a container
Enterprise Foundations Enterprise Computing

26 February 2013

45

Component Development Process


Analysis
Select Adapt Integrate Test Design Implementation

Find

Requirements must be : captured analyzed defined

Component evaluation

Component must be Integration designed : implemented Test verified System Development validated delivered

26 February 2013

Enterprise Foundations Enterprise Computing

46

Component Development Process (1)


Project Charter Analysis Pattern Identification External Component Interface Analysis
During Requirement Analysis

System Component Interface Analysis


Component Model Technology Identification Component Identification Component Selection
26 February 2013 Enterprise Foundations Enterprise Computing 47

During Preliminary System Design

Component Development Process (2)


Component Design Adaptation (During Detailed Design) Component Implementation Specialisation Component Test (During Unit Test) Component Assembly (During Assembly)

Module Test (During Thread Test)


Component Configuration Specification System Test Deployment Maintenance
26 February 2013 Enterprise Foundations Enterprise Computing 48

Project Charter

Detailed Activities (1)

Conceptualization To establish the vision and core requirements of the software system to be developed.

During OO Requirement Analysis


Analysis Pattern Identification
Common problems described as system behaviours that can be used to map to design patterns

External component Interface Analysis


Component models, standard component interfaces & specific component interfaces are identified

System Component Interface Analysis


Standard component model interfaces are identified

26 February 2013

Enterprise Foundations 49 Enterprise Computing

Detailed Activities (2)


During OO Preliminary System Design
Component Model Technology Identification
Technology and tools used to design the system

Component Identification
In terms of the interfaces and technology they must support

Component Selection
COTS components evaluated for fitness and applicability for use Components developed in other projects Component qualified for functional support, quality, technology support, desgree of customization required and supported

Component Design Adaptation (During OO Detailed Design)


Easy-to-use customisation interface Descripter file or set of design-time attributes

26 February 2013

Enterprise Foundations Enterprise Computing

50

Detailed Activities (3)

Component Implementation Specialisation

May need modification in code, extending existing code via subclassing

Component Test (During OO Unit Test)

Unit testing

Component Assembly (During OO Assembly)

Assembled into individual modules that can be separately tested. Modules have their own customisation descripters

Module Test (During OO Thread Test)

Behaviour of an individual module, serving as an assembly of components, is tested and verified


Enterprise Foundations Enterprise Computing 51

26 February 2013

Detailed Activities (4)

Component Configuration Specification


Specification of configuration using component descriptors. Component modules are then configured into a cohesive application

System Test
Involves testing a cohesive application as per a particular component configuration

Deployment
Deploy the system as per the configuration specification Deployment environment should closely resemble system test environment

Maintenance

Components swapped out for replacement with other component implementations with less time spent on repair Enhances system availability for the user base
Enterprise Foundations Enterprise Computing 52

26 February 2013

Component development for reuse


Components developed for a specific application usually have to be generalised to make them reusable A component is most likely to be reusable if it associated with a stable domain abstraction (business object) For example, in a hospital stable domain abstractions are associated with the fundamental purpose - nurses, patients, treatments, etc

26 February 2013

Enterprise Foundations Enterprise Computing

53

Design Patterns
Requirement analysis -> Analysis patterns -> Generate common analysis models > Common design patterns

A design pattern is a description or template for solving a problem that can be used in many different situations
Design patterns can speed up the development process by providing tested, proven development paradigms. Reusing design patterns helps to prevent subtle issues that can cause major problems and improves code readability for coders and architects familiar with the patterns.

Design pattern is defined in terms of :


Intended Use Common problem it intends to solve A design structure of classes/interfaces and their relationships, participating and collaborating objects Expected solution results Implementation considerations
26 February 2013 Enterprise Foundations Enterprise Computing 54

Types of Design Patterns (1)


Adapter Pattern
Used to adapt the implementation of one classs interface to support a new underlying implementation. Adapter could also be thought of as a wrapper

Factory Pattern
General framework for creating new object instances. Defines an interface for creating objects, but lets subclasses decide which classes to instantiate.

Singleton Pattern
Provides a means to ensure that only one object instance of a class is created and referenced by clients accessing that class Encapsulated just-in-time initialization or initialization on first use.

26 February 2013

Enterprise Foundations Enterprise Computing

55

Types of Design Patterns (2)


MVC Pattern
Standards for Model, View & Control aspects are separately encapsulated

Strategy Pattern
Encapsulates interchangeable underlying algorithms / policies and provide the same interface for accessing such algorithms / policies

Command Pattern
Encapsulate a command for performing some operation

26 February 2013

Enterprise Foundations Enterprise Computing

56

Types of Design Patterns (3)


Subject-Observer pattern
Encapsulate subject of some event that is to be observed.
Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.

Auctioneer starts the bidding & observes when a paddle is raised to accept the bid. Acceptance of the bid changes the bid price which is broadcast to all of the bidders in the form of a new bid.

Proxy Pattern
Proxy provides a surrogate or place holder to provide access to an object.
A check or bank draft is a proxy for funds in an account. A check can be used in place of cash for making purchases and ultimately controls access to cash in the issuers account.

Composite Pattern
Contains one or more composite objects

Anti-Pattern
Common design patterns to be avoided during development
26 February 2013 Enterprise Foundations Enterprise Computing 57

EC SAQ - Unit1A
1. What is an enterprise? 2. Enumerate the main components of enterprise? 3. List the primary objectives of an enterprise. 4. What is enterprise computing? 5. What is enterprise architecture? 6. Give the generic enterprise system architecture. 7. What are the two essential components of a software system? 8. Define class & class package in OOD. 9. What is class diagram? 10. What is Dynamic Behaviour diagram? 11. What are the various component model interface classifications? 12. List the common design patterns.

26 February 2013

Enterprise Foundations Enterprise Computing

58

EC LAQ - Unit1A
1. Why enterprise system architecture is needed in organisations? 2. Give the generic enterprise system architecture. 3. Describe object-oriented development process from charter to maintenance. 4. Describe Component based software development. 5. Describe the design patterns in distributed object architectures.

26 February 2013

Enterprise Foundations Enterprise Computing

59

You might also like