Developing Enterprise Applications A Technical Perspective

fullgorgedcutNetworking and Communications

Oct 24, 2013 (3 years and 9 months ago)

121 views

Developing Enterprise Applications

A Technical Perspective


V. “Juggy” Jagannathan

West Virginia University

Introduction

Provide an overview of the
technologies that are relevant to
the development and
deployment of enterprise
solutions

Goals of today’s presentation:

Allow participants
to evaluate where
the technology is
headed

Technology solutions

What is an Enterprise Application (EA) ?


EA Requirements


Platform Choices


OMG approach


Web Services


Java


.NET


Security technologies


Communication
technologies


Storage advances


Sample systems

What is an EA?


An Enterprise Application (EA) allows large
number of clients to use complex application
software using Internet Protocols.


EAs provide infrastructure to host
the application


As enterprise applications, EAs
must satisfy a wide range of
stringent requirements

Definition

.

Technology solutions

What is an EA?


EA Requirements


Platform Choices


OMG approach


Web Services


Java


.NET


Security technologies


Communication
technologies


Storage advances


Sample systems

EA Requirements


Flexibility


Security


Reliability


Availability


Scalability


Evolvability


Performance


Supportability


Maintainability


Interoperability


Platform Independence


Location Independence


Open Standards and Systems


Architecture Choices

Technology solutions

EA Requirements


Solutions that satisfy the customer’s
workflow needs


For healthcare documentation:


Dictation workflow


Transcription workflow


Signature workflow


Routing workflow


Coding workflow


Flexibility


Security


Reliability


Availability


Scalability


Evolvability


Performance

Technology solutions

It’s the
process
,
stupid! Not
technology.



Mike Waldrum, UAB

What are EA flexibility requirements?

EA Requirements

Focus computation
where it can be most
effective to meet the
needs of the workflow

Technology solutions

Off
-
Premise Computation

Internet

On
-
Premise Computation

Flexibility:

Edge Computing


Flexibility


Security


Reliability


Availability


Scalability


Evolvability


Performance

EA Requirements


Compliance with HIPAA regulations


Privacy protection


Data encryption


Stringent access control


Audit trails


Physical security of premises


Virus and intrusion protection

Technology solutions

Encryption...is a powerful defensive weapon for free
people. It offers a technical guarantee of privacy,
regardless of who is running the government... It's
hard to think of a more powerful, less dangerous tool
for liberty.


Esther Dyson

What are EA security requirements?


Flexibility


Security


Reliability


Availability


Scalability


Evolvability


Performance

EA Requirements


No work is ever lost


No document is ever lost or
corrupted


Proven backup and recovery
strategies are in place


Physical infrastructure (data center)
has ample protection, including fire
protection

Technology solutions

There are only two kinds of computer users: those
who have lost data in a crash, and those who will
lose data in a crash
.


Bob LeVitus

What are EA reliability requirements?


Flexibility


Security


Reliability


Availability


Scalability


Evolvability


Performance

EA Requirements


What guarantees are provided?


How much down time are you willing to
tolerate? How can you find out?


Is there a backup in case a server goes
down?


Is there a backup in case of a power
outage?


Is there a backup in case of a network
outage?


Is there a backup data center?


Is there a disaster recovery plan?

Technology solutions

Issues regarding availability:


Flexibility


Security


Reliability


Availability


Scalability


Evolvability


Performance

EA Requirements

Calculating total availability

Technology solutions

Amount of
downtime

Formula

Uptime
percentage

5 minutes/year

(8760
-

5/60)/8760

99.999 % [five 9s]

1 hour/year

8759/8760

99.99 %


52 hours/year

(1 hr/week)

8708/8760

99.4%

# of hours per year = 365 x 24 = 8,760


Flexibility


Security


Reliability


Availability


Scalability


Evolvability


Performance

EA Requirements


What happens when you add more
users? More volume? How easy is it
to upgrade infrastructure?


Does the company have the financial
resources to improve the
infrastructure?


Sooner or later, you will need scalability,
which means the ability to add hardware.

Issues regarding scalability:

Just as we could have rode into the sunset,
along came the Internet, and it tripled the
significance of the PC.


Andy Grove


Flexibility


Security


Reliability


Availability


Scalability


Evolvability


Performance

EA Requirements


How easy is it to upgrade? Can you
upgrade one user without upgrading others?


What are the technological underpinnings?


Are there automatic upgrades?


Solutions must be engineered to
continuously evolve and leverage the latest
in Internet technologies.

Issues regarding evolvability:

Whoever desires constant success must
change his conduct with the times.



Machiavelli


Flexibility


Security


Reliability


Availability


Scalability


Evolvability


Performance

EA Requirements


What benchmarks are available?


Time required to submit reports?


Retrieve reports?


Retrieve and sign?


How is the performance under a heavy
load? No load?


What is the degradation? Is it
acceptable to the user community?


Can you work off
-
line?

Issues regarding performance:

Technology is so much fun

but we can drown
in our technology. The fog of information can
drive out knowledge.


Daniel J. Boorstin



Flexibility


Security


Reliability


Availability


Scalability


Evolvability


Performance

EA Requirements


Can the user manage his/her own support
needs? Is support Web
-
based?


What infrastructure support is available?


Is support 24/7, 365 days? How prompt is
response?


Will slow response cause down time?


Supportability


Maintainability


Interoperability


Platform
Independence


Location
Independence


Open
Standards and
Systems


Architecture
Choices

Issues regarding supportability

Computers shouldn't be unusable. You don't
need to know how to work a telephone switch
to make a phone call, or how to use the
Hoover Dam to take a shower, or how to work
a nuclear
-
power plant to turn on the lights.



Scott McNealy

EA Requirements


Who maintains the software?


How is maintenance and software
evolution managed?


What technology basis facilitates
maintenance?


Advanced components and object
-
oriented technologies facilitate
software maintenance and evolution

Issues regarding maintainability


Supportability


Maintainability


Interoperability


Platform
Independence


Location
Independence


Open
Standards and
Systems


Architecture
Choices

EA Requirements


How easy is it to interface to the system?


Does it provide open APIs?


Does it support XML
-
based data
exchange? Document interchange?


Does it support interoperable standards?

Issues regarding interoperability

Correct me if I'm wrong
-

the gizmo is connected
to the flingflang connected to the watzis, watzis
connected to the doo
-
dad connected to the ding
dong.


Patrick B. Oliphant


Supportability


Maintainability


Interoperability


Platform
Independence


Location
Independence


Open Standards
and Systems


Architecture
Choices

EA Requirements


What platform is used? Windows
or Unix?


Does it support both, leveraging
the strengths of both platforms?

Issues regarding the platform:


Supportability


Maintainability


Interoperability


Platform
Independence


Location
Independence


Open Standards
and Systems


Architecture
Choices

EA Requirements


Can users work from home?


Over low speed modem lines?


Work in LAN, WAN environments
over secure lines?


Can they work on the go using their
PDAs?

Issues regarding user location:


Supportability


Maintainability


Interoperability


Platform
Independence


Location
Independence


Open Standards
and Systems


Architecture
Choices

EA Requirements


What standards are supported?


Internet standards: HTTP, XML,
Web services, etc.


Object standards: CORBA,
DCOM


Security standards: PKI, SSL

Issues regarding standards


Supportability


Maintainability


Interoperability


Platform
Independence


Location
Independence


Open Standards
and Systems


Architecture
Choices

EA Requirements


Platform choices: Microsoft, OMG,
Java, Web services


Off
-
premise, on
-
premise, edge
computing trade
-
offs


Thin vs. thick clients: trade
-
offs in
functionality, performance and
supportability

Issues regarding architecture

The first rule of any technology used in a
business is that automation applied to an
efficient operation will magnify the efficiency.
The second is that automation applied to an
inefficient operation will magnify the inefficiency.


Bill Gates




Supportability


Maintainability


Interoperability


Platform
Independence


Location
Independence


Open Standards
and Systems


Architecture
Choices

EA Requirements


Implementation alternatives:


Off
-
premise

hosted solution

typically
viewed as the EA model


Edge computing model: a hybrid model
combining EA and an on
-
premise solution


On
-
premise solution

The choice of a solution depends on the
organization’s goals and objectives.

.

Platform Choices


What is an EA?


EA Requirements


Platform Choices


OMG approach


Web Services


Java


.NET


Security technologies


Communication
technologies


Storage advances


Healthcare standards


Sample systems

Platform Choices


Platform standards


Object Management Group (OMG) CORBA infrastructure and
approach


Web Services

the new kid on the block


Other popular platforms


Sun J2EE Platform


Windows .NET


Additional platforms


Oracle


IBM


Iona

What are the options?

.

OMG Approach


What is an EA?


EA Requirements


Platform Choices


OMG approach


Web Services


Java


.NET


Security technologies


Communication
technologies


Storage advances


Healthcare standards


Sample systems

.

Technology solutions

Web Services


What is an EA?


EA Requirements


Platform Choices


OMG approach


Web Services


Java


.NET


Security technologies


Communication
technologies


Storage advances


Healthcare standards


Sample systems

.

Technology solutions

Java


What is an EA?


EA Requirements


Platform Choices


OMG approach


Web Services


Java


.NET


Security technologies


Communication
technologies


Storage advances


Healthcare standards


Sample systems

Platform Choices: Java

Java and J2EE Platform

Overview

Platform Choices: Java

J2EE Architecture

J2EE

Application

Server

JAF

JavaMail

JMS

JDBC

JTA

JNDI

RMI/IIOP

Servlets

JSPs

Tag

Library

Web Container

JAF

JavaMail

JMS

JDBC

JTA

JNDI

RMI/IIOP

EJB Container

Session

Beans

Entity

Beans

RDBMS

Mail Server

Java App.

CORBA Server

Directory

Service

Message Queue

XHTML

XML

Applet

Client

App.

HTTP(S)

Reproduced with Permission from
Java Server Programming J2EE Edition



Wrox Press, Ltd, 2000

Platform Choices: Java

J2EE Platform components:

Java : J2EE Platform


JAXP 1.0


Java API
for XML Processing


JDBC 3.0


Java Data
Base Connectivity


RMI over IIOP


EJB 2.1


Enterprise
Java Beans


Java Servlets 2.4


Java Server Pages
2.0


Java Message Service 1.0


Java Naming and
Directory Interface (JNDI)
1.2


Java Transaction API 1.0


JavaMail 1.1 J2EE
Connector Architecture 1.0


Java Authentication and
Authorization Service 1.0

Platform Choices: Java

J2EE Platform

Java : J2EE Platform


Strong and proven platform


Evolving constantly


Already supports various APIs to
develop and deploy web services


.

.NET


What is an EA?


EA Requirements


Platform Choices


OMG approach


Web Services


Java


.NET


Security technologies


Communication
technologies


Storage advances


Healthcare standards


Sample systems

Platform Choices: .NET

.NET Platform

Client App.

Users

Web

Services

Web

Forms

.NET Framework

HTTP

SOAP

UDDI

ODBC

DCOM

.NET

Web servers

Web servers

Web servers

Web servers

Web servers

.NET servers

Platform Choices: .NET

.NET Components

.NET Platform


.NET framework


Common Language Runtime (CLR) library


ActiveX Data Objects
-

(ADO.NET)


Active Server Pages


(EA.NET) and supports Web
Services (UDDI, WSDL & SOAP)


.NET Compact framework for PDAs


.NET Remoting (RPC support)


Visual Studio .NET


VB, C++, C#, Jscript… all compile to MSIL (Microsoft
Intermediate Language) and utilize CLR

Platform Choices: .NET

.NET Framework

.NET Platform


Microsoft’s big push to open standards
and support for XML
-
based solutions


Fully supports Web Services approach


Microsoft is an active participant in
W3C efforts and is a strong proponent
of standardization of Web Services
and related technologies.

.

Technology solutions

Topic Outline


What is an EA?


EA Requirements


Platform Choices


OMG approach


Web Services


Java


.NET


Security technologies


Communication
technologies


Storage advances


Healthcare standards


Sample systems

Security Technologies

Security Concerns


Authentication


Authorization and access control


Data Integrity


Data Confidentiality


Signing and non
-
repudiation


Audit trails


Virus protection and intrusion detection

Security

Security Technologies

Technology options:


Hashing/digest creations


SHA, MD5


Encryption


Symmetric
-

DES


Encryption


Asymmetric
-

PKI


Digital Signatures


Trust and Public Key Certificates


Secure Sockets Layer (SSL)


Smartcards, Biometrics (Thumbprints,
retinal prints, voice prints)

Security

Security Technologies

Technology solutions

XML and Security

Security


XML Signature


XML Encryption


Security Assertion Markup Language (SAML)


XKMS


XML Key Management Specifications


X
-
KISS


XML


Key Information Service
Specification


X
-
KRSS
-

XML Key Registration Service
Specification

.

Technology solutions

Topic Outline


What is an EA?


EA Requirements


Platform Choices


OMG approach


Web Services


Java


.NET


Security technologies


Communication
technologies


Storage advances


Healthcare standards


Sample systems

Communication Technologies

Technology solutions


Ethernet


Wireless


Phone


GSM


CDMA/TDMA


Network


Bluetooth


802.11b


Zigbee


Broadband


DSL


Cable

Communication

Communication Technologies


High bandwidth Internet connection


Always on

no need to explicitly establish
connection


Supports audio and video in addition to
data connectivity


Typically, downstream bandwidth is a lot
higher than upstream bandwidth

Broadband technology

Communication

Communication Technologies

Communication


Options:


DSL


Cable Modem


Check out how much bandwidth you have from your
broadband provider!

http://www.toast.net/performance/

http://www.dslreports.com/stest

Bandwidth

.

Storage Advances


What is an EA?


EA Requirements


Platform Choices


OMG approach


Web Services


Java


.NET


Security technologies


Communication
technologies


Storage advances

Storage Advances

Technology solutions

Storage


A microcosm of EA requirements


Storage technologies have to address these
issues:


Availability


Reliability


Scalability


Performance


Security

Storage Requirements

Storage Advances

Storage


RAID technology



primarily to address reliability
and performance issues


Storage Area Networks (SAN) and Network
Attached Storage (NAS)



primarily to address
scalability and availability issues


SAN



to increase the storage capacity of a
server (say, a database server)


NAS



to increase the storage capacity of file
servers on the network

Storage Technologies

Storage Advances


R
edundant
A
rray of
I
nexpensive/
I
ndependent
D
isks


Can be implemented in software or
hardware

What is RAID?

Storage

Storage Advances

Technology solutions


RAID0 striping



Simple striping of data across all the
disks in an array. Improves load balancing and performance.
Does not provide redundancy.


Total capacity = Individual Disk capacity * number of
disks in array


RAID1 mirroring



Mirroring of data in multiple disks.
Provides redundancy.


Total capacity = Individual Disk capacity * (number of
disks in array/2)


RAID0+1



RAID0 and 1 strategies are combined to
provide high performance and reliability.

RAID Configurations

Storage

Storage Advances


RAID 5



Use of Error Correction Codes to
increase capacity in RAID arrays.


Total capacity = Individual Disk capacity * (n
-
1) where n is number of disks in array


Higher disk capacity. Good for small reads,
bad for writes.


Can recover from any one disk failure.


RAID 6



same as RAID 5, but can tolerate two
disk failures.

RAID Configurations

Storage

Storage Advances

Storage Area Networks
(SAN)

Storage

Hubs

Switches

Bridges

RAID

RAID

RAID

Storage Advances


Rapidly evolving field


Major players for enterprise storage
include EMC and Network Appliance,
Inc.


Microsoft is a recent entry to the
marketplace with its Windows Storage
Server 2003

Storage Technology Highlights

Storage

Technology solutions


MD5

-

Message Digest 5


SHA

-

Secure Hashing
Algorithm


NTLM

Authentication
protocol


DES

-

Data Encryption
Standard


HTTP
-
EF

-

HTTP Extension
Framework


XKMS

-

XML Key
Management Services


X
-
KISS

-

XML
-

Key
Information Service
Specification

Application Service Provider Model

Glossary


SAML

-

Security Access
Markup Language


WSDL

-

Web Services
Description Language


IDL

-

Interface Definition
Language


UML

-

Unified Modelling
Language


SOAP

-

Simple Object Access
Protocol


UDDI

-

Universal Description,
Discovery and Integration

Conclusion

Technology solutions

Questions?