enterprise computing_anna university
DESCRIPTION
Enterprise Architectural overview - Object oriented software development for enterprise - Component Based software development for enterpriseTRANSCRIPT
Enterprise Computing
Unit 1A Enterprise Foundations
Balasubba Raman Guruswamy
ReferenceTEXT BOOKS:
1. Paul J Perrone, Venkata S.R. Krishna R and Chaganti, "Building Java Enterprise Systems with J2EE", Techmedia , New Delhi, 2000
2. George Reese, “Database programming, with JDBC and Java" Second Edition, O’Reiliy Publishers , New Delhi, 2000
REFERENCE BOOKS:
3. Dustin R. Callaway - "Inside Servlets" - Addison Wesley Longman Inc, New Delhi, 2001
4. Tom Valesky - "Enterprise Java Beans" - Addison Wesley Longman Inc. New Delhi, 2000
5. Ed Roman-"Mastering EJB”-John Wiley & Sons, New Delhi, 2001
11 April 2023Enterprise Foundations
Enterprise Computing2
EC – Unit 1A - SyllabusEnterprise Architectural overview - Object oriented
software development for enterprise - Component Based software development for enterprise
11 April 2023Enterprise Foundations
Enterprise Computing3
Chapter 1,2 3 of Reference 1
What is Enterprise Computing?• What is an enterprise?
Next
Large organization such as multinational corporation,
university, hospital, research laboratory, or government
organization
Large organization such as multinational corporation,
university, hospital, research laboratory, or government
organization
Requires special computing solutions because of its size and complexity
Requires special computing solutions because of its size and complexity
Enterprise computingEnterprise computingUse of computers in networks that
encompass variety of operating systems, protocols, and network architectures
Enterprise computingEnterprise computingUse of computers in networks that
encompass variety of operating systems, protocols, and network architectures
Set out to accomplish certain goals
11 April 2023 4Enterprise Foundations
Enterprise Computing
How does information flow within an enterprise? Enterprise manages large amounts of information over an extensive
geographical area and disparate groups of people
Next11 April 2023 5Enterprise Foundations
Enterprise Computing
How are enterprises organized? Most are organized in a hierarchy
11 April 2023 6Enterprise Foundations
Enterprise Computing
Main Components of EnterprisePursuit of the enterprise’s 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
11 April 2023Enterprise Foundations
Enterprise Computing7
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
11 April 2023Enterprise Foundations
Enterprise Computing8
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
11 April 2023Enterprise Foundations
Enterprise Computing9
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?
11 April 2023Enterprise Foundations
Enterprise Computing10
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)
11 April 2023 Enterprise Foundations Enterprise Computing
11
If you don’t have an architecture, you change by trial and error (which is high risk)
11 April 2023Enterprise Foundations
Enterprise Computing12
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
11 April 2023Enterprise Foundations
Enterprise Computing13
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
11 April 2023Enterprise Foundations
Enterprise Computing14
Object-Oriented Software Development
11 April 2023Enterprise Foundations
Enterprise Computing15
Elements of Object-oriented SoftwareStage 1: Assembly level programming – Data exposed to direct access by
assembly –language instructionsStage 2: Higher-level programming languages – Construction of programs in a
more natural and human-readable formStage 3: Code could be modularized by partitioning software into separately
compilable modules using compilers and linkage technologyStage 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 memoryHandles – Reference to distributed object – Network address information
and an object IDPackage – collection of one or more objects which have cohesive logical
relation and offer specific service11 April 2023
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
Enterprise Foundations Enterprise Computing
17
AlgorithmModel
Software system
Real world
Abstraction
Interpretation
How to Model Real World?Programming languages
– Tools to describe computer models
Programming modelsComputation-oriented model (50s ~ 60s)Data-oriented model (70 ~ 80s)Object-oriented model (90s ~ )
Balanced view between data and computationComponent Based Model (2000 ~ ..)
11 April 2023 Enterprise Foundations Enterprise Computing
18
Why O-O Model?
• Possible to directly represent real world objects in the computer system
Enterprise Foundations Enterprise Computing
19
Software systemReal world
Data-oriented model
Software systemReal world
Object-oriented model
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)
11 April 2023 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
11 April 2023Enterprise Foundations Enterprise Computing
21
OO Development Process Project Charter
Requirement Analysis
System Behavioral Analysis
System Interface Analysis
Preliminary System Design
Detailed Design
11 April 2023Enterprise Foundations
Enterprise Computing22
Implementation
Unit Test
Assembly
Thread Test
Configuration Specification
System Test
Deployment
Maintenance
Detailed Activities (1)• Project Charter
– 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
11 April 2023 Enterprise Foundations Enterprise Computing
23
Detailed Activities (2)• Object-oriented analysis and modeling
– Build models of the system’s 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
11 April 2023 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
11 April 2023Enterprise Foundations
Enterprise Computing25
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
11 April 2023Enterprise Foundations
Enterprise Computing26
O-O Processes (e.g., RUP)
11 April 2023 Enterprise Foundations Enterprise Computing
27
Classes
• 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.
zone2pricegetZones()getPrice()
TariffSchedule
Table zone2priceEnumeration getZones()Price getPrice(Zone)
TariffSchedule
Name
Attributes
Operations
Signature
TariffSchedule
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)11 April 2023 29
Introduction - UML OBJECT ORIENTED SOFTWARE ENGINEERING
UML Diagrams
11 April 2023Introduction - 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.
11 April 2023 31Introduction - UML
OBJECT ORIENTED SOFTWARE ENGINEERING
Use Case Diagrams
WatchUser WatchRepairPerson
ReadTime
SetTime
ChangeBattery
Actor
Use case
Package
SimpleWatch
Use case diagrams represent the functionality of the system from user’s point of view
11 April 2023 32Introduction - UML
OBJECT ORIENTED SOFTWARE ENGINEERING
Class Diagrams
• 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.
Enumeration getZones()Price getPrice(Zone)
TariffSchedule
* *
Tripzone:Zoneprice:Price
11 April 2023 33Introduction - UML
OBJECT ORIENTED SOFTWARE ENGINEERING
Class Diagrams
Batteryload()
1
2
Timenow()
PushButtonstatepush()release()
1
1
1
1
1
2
blinkIdxblinkSeconds()blinkMinutes()blinkHours()stopBlinking()referesh()
LCDDisplay
SimpleWatch
Class
AssociationMultiplicity
Attributes
Operations
Class diagrams represent the structure of the system
11 April 2023 34Introduction - UML
OBJECT ORIENTED SOFTWARE ENGINEERING
Dynamic Behaviour DiagramsScenario diagram is used to design modelling
view to indicate dynamic behaviour between object instances
Sequence diagram
11 April 2023Enterprise Foundations
Enterprise Computing35
Sequence DiagramObject
MessageActivation
blinkHours()
blinkMinutes()
incrementMinutes()
refresh()
commitNewTime()
stopBlinking()
pressButton1()
pressButton2()
pressButtons1And2()
pressButton1()
:WatchUser:Time:LCDDisplay:SimpleWatch
11 April 2023 36Introduction - UML
OBJECT ORIENTED SOFTWARE ENGINEERING
Sequence diagrams represent the behavior of a system as messages (“interactions”) between different objects
button1&2Pressed
button1&2Pressed
button1Pressed
button2Pressed
button2Pressed
button2Pressed
button1Pressed
button1&2Pressed IncrementMinutes
IncrementHours
BlinkHours
BlinkSeconds
BlinkMinutes
IncrementSeconds
StopBlinking
Statechart DiagramsState
Initial state
Final state
Transition
Event
11 April 2023 37Introduction - UML
OBJECT ORIENTED SOFTWARE ENGINEERING
Represent behavior of a single object with interesting dynamic behavior.
Component based software development
11 April 2023 Enterprise Foundations Enterprise Computing
38
Enterprise Components
OO SoftwareClasses – Encapsulate fine-grained concepts of a
problem and solutionObjects - Instances of classes created during the
runtime operation of the system
ComponentsCoarser-grained means to encapsulate problemsRepresent a logical collection of one or more fine-
grained classes Can be more directly produced from analyses and
design models11 April 2023
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
11 April 2023Enterprise Foundations
Enterprise Computing40
Elements of a component model
11 April 2023Enterprise Foundations
Enterprise Computing41
Component model
InterfacesUsage
informationDeployment
and use
Interfacedefinition
Specificinterfaces
Composition
Namingconvention
Meta-dataaccess
Customisation
Packaging
Documentation
Evolutionsupport
Middleware supportComponent 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
11 April 2023Enterprise Foundations
Enterprise Computing42
Component interfacesInterfaces 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.
11 April 2023Enterprise Foundations
Enterprise Computing43
Component interfaces
11 April 2023Enterprise Foundations
Enterprise Computing44
Provides interfaceRequires interface
ComponentDefines the servicesfrom the component’senvironment that ituses
Defines the servicesthat are providedby the componentto other components
Component Interface typesComponent 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
11 April 2023Enterprise Foundations
Enterprise Computing45
Component Development Process
11 April 2023Enterprise Foundations
Enterprise Computing46
Development
Analysis
Design
Implementation
Integration
Test
Evaluation
Find
Select
Adapt
Integrate
Test
Component evaluation System Development
Requirements must be :
captured analyzed defined
Component must be designed : implemented verified validated delivered
Component Development Process (1) Project Charter
Analysis Pattern Identification
External Component Interface Analysis
System Component Interface Analysis
Component Model Technology Identification
Component Identification
Component Selection
11 April 2023Enterprise Foundations
Enterprise Computing47
During Requirement Analysis
During Preliminary System Design
Component Development Process (2)
11 April 2023Enterprise Foundations
Enterprise Computing48
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
Detailed Activities (1)• Project Charter
– 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
11 April 2023 Enterprise Foundations Enterprise Computing
49
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
11 April 2023 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
11 April 2023Enterprise Foundations
Enterprise Computing51
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
11 April 2023Enterprise Foundations
Enterprise Computing52
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
11 April 2023Enterprise Foundations
Enterprise Computing53
Design PatternsRequirement 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
11 April 2023Enterprise Foundations
Enterprise Computing54
Types of Design Patterns (1)• Adapter Pattern
Used to adapt the implementation of one class’s interface to support a new underlying implementation. Adapter could also be thought of as a “wrapper”
• Factory PatternGeneral framework for creating new object instances.
Defines an interface for creating objects, but lets subclasses decide which classes to instantiate.
• Singleton PatternProvides 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”.
11 April 2023Enterprise Foundations
Enterprise Computing55
Types of Design Patterns (2)• MVC Pattern
Standards for Model, View & Control aspects are separately encapsulated
• Strategy PatternEncapsulates interchangeable underlying
algorithms / policies and provide the same interface for accessing such algorithms / policies
• Command PatternEncapsulate a command for performing
some operation
11 April 2023Enterprise Foundations
Enterprise Computing56
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.
• Proxy PatternProxy 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 issuer’s account.
• Composite PatternContains one or more composite objects
• Anti-PatternCommon design patterns to be avoided during
development
11 April 2023Enterprise Foundations
Enterprise Computing57
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.
EC – SAQ - Unit1A1. 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.
11 April 2023Enterprise Foundations
Enterprise Computing58
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.
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.
11 April 2023Enterprise Foundations
Enterprise Computing59