Legacy technologies in corporate environments - PowerPoint PPT Presentation

1 / 53
About This Presentation
Title:

Legacy technologies in corporate environments

Description:

Legacy technologies in corporate environments Legacy technologies in corporate environments 1. Mainframe Concept * EZEM90 TEST ... – PowerPoint PPT presentation

Number of Views:151
Avg rating:3.0/5.0
Slides: 54
Provided by: profarsCo
Category:

less

Transcript and Presenter's Notes

Title: Legacy technologies in corporate environments


1
Legacy technologies in corporate environments
2
My background
Experience since 1970 in InformationTechnology.C
ompanies where Ive worked Private and State
companies Banks IT Services
Providers Areas and activities in which Ive
been involved IT Planning Software Factory
Training Appl Systems Dev Maint (systems
analysis and programming) Technical Support
(system programmer). And, since 1981 Im also
an University Teacher (Computing Sciences courses)
2
3
Abstract
ABSTRACT Even today, most large corporations (in
both developing and developed countries) still
rely on 'legacy' technologies such as mainframes
for daily operations. In this talk, I will
present a review of the characteristics of the
mainframes and related technology, the suppliers,
the legacy systems users profile, and the roles
that these technologies play, including software
development and maintenance. Finally, Ill
present some trends we can observe in the
corporations in the use of legacy systems.
3
4
Outline
1. Mainframe concept 1.1 In the sixties 1.2
Suppliers 1.3 Characteristics 2. Mainframe
users 3. Mainframe legacy systems 3.1 Some words
about software assets 3.2 Hardware and Software
survival 3.3 Application Software survival 3.4
People 3.5 Trends
4
5
1. Mainframe Concept
1. Mainframe concept 1.1 In the sixties 1.2
Suppliers 1.3 Characteristics 2. Mainframe
users 3. Mainframe legacy systems 3.1 Some words
about software assets 3.2 Hardware and Software
survival 3.3 Application Software survival 3.4
People 3.5 Trends
5
6
Was once the 60s
1. Mainframe Concept
6
7
1. Mainframe Concept
  • 1.1 In the 60s
  • There were no small systems
  • 3rd generation computers
  • Integrated Circuits
  • Operating systems
  • Multiprogramming
  • Centralized processing

We could see a bit with the naked eye
7
8
1. Mainframe Concept
1.2 Mainframe suppliers
8
9
1. Mainframe Concept
1.2 Mainframe suppliers Whos left today?
Basically IBM.
So, when we talk about Mainframes today, were
talking about IBM systems, derived from IBM/360.
/360 model 30 (ex.) 64 K Ram, no virtual
storage, 3 programs, 1 card reader/punch, 4 X 7.5
MB 2311 HD, 1403 printer (1100 lpm), 2420
magnetic tapes, typewriter console http//www-03.i
bm.com/ibm/history/exhibits/mainframe/mainframe_PP
2030.html
The concept is not necessarily attached to
processing capacity or speed, but to the systems
(and the product of their evolution) developed
based on the technical characteristics of the
original IBM mainframes. Hardware, base software
(operating systems) and application systems.
9
10
1. Mainframe Concept
1.2 Mainframe suppliers mainframes X servers
X supercomputers
IBM products today are servers that also do (the
old) mainframe activities.
CPU eServer zSeries 990, max 256 GB RAM, 2007
kg, 1,94 m height, 26.78 sq. ft footprint, 58.69
sq.ft clearance, 15.8 kw, 53.73 KBTU/hr
http//www-03.ibm.com/systems/z/hardware/z990/gla
nce.html
10
11
1. Mainframe Concept
1.2 Mainframe suppliers mainframes X servers
X supercomputers
Systems not derived from the IBM System/360 (even
with similar processing power) are referred to as
"servers or, in other cases,
HP Superdome Server , up to 64 processors, up to
2 TB memory, 77 height, 60 width, 48
depth http//www.hp.com/products1/servers/scalable
servers/superdome/comparison.html
11
12
1. Mainframe Concept
1.2 Mainframe suppliers mainframes X servers
X supercomputers
or, in other cases, supercomputers.
CPU Cray XT3 , 102200 GFlops 1/10 teraFlops
http//www.jlab.org/news/releases/2007/supercompu
ter.html
12
13
1. Mainframe Concept
1.2 Mainframe suppliers mainframes X servers
X supercomputers
By the way
IBM Blue Gene /L Supercomputer 73728 GB main
memory, 478,200 GFlops almost half aTeraFlop
1 in Top 10 supercomputer systems
http//www.top500.org
13
14
1. Mainframe Concept
1.3 Some mainframe characteristics
Application systems programming In the
beginning was cards...
14
15
1. Mainframe Concept
  • 1.3 Some mainframe characteristics
  • Systems designed initially with
  • Batch processing
  • Primary input data using punched cards
  • (note that even the operating systems were
    batch-oriented)

http//www.kloth.net/services/cardpunch.php
15
16
1. Mainframe Concept
1.3 Some mainframe characteristics
Evolution Need for online processing
  • 3270 terminal characteristics
  • ? (No mouse only keyboardno processing
    capability)
  • ? 24 lines X 80 columns 1920 characters
    screen
  • ? Each character is 8 x 20 dot-matrix
  • ? Each field has his own attributes (color,
    blinking, etc)
  • ? Today the mainframe applications normally
    think theyre
  • communicating with a 3270 or similar, but
    there is an emulation
  • program in the PCs, converting protocols
  • ? Some differences with PC keyboards

16
17
1. Mainframe Concept
1.3 Some mainframe characteristics
3270 keyboard
PC keyboard
17
18
1. Mainframe Concept
1.3 Some mainframe characteristics
Typical 3270 screen
140411 NATURAL TEST
UTILITIES 14/06/2007 Test Mode
OFF - Debug Main Menu -
Object RHALBE18

Code Function


T Set test
mode ON
E Debug environment
maintenance
S Spy maintenance
B
Breakpoint maintenance
W Watchpoint
maintenance
C Call statistics maintenance
X
Statement execution statistics maintenance
V Variable
maintenance
L List object source
?
Help
. Exit


Code .. _ Object
name .. ________




Command gt

Enter-PF1---PF2---PF3---PF4---PF5--
-PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Exit Last Flip
Canc
18
19
1. Mainframe Concept
1.3 Some mainframe characteristics
  • Main Operating Systems lines
  • (MVT),,OS/VS2, ..., MVS, ..., z/OS
  • (DOS),,DOS/VSE,....., z/VSE
  • ..,VM, .........................., z/VM

19
20
1. Mainframe Concept
1.3 Some mainframe characteristics
  • ? JCL (script language)
  • ? Vsam (access method)
  • ? Utilities, compilers
  • ? etc
  • Are functionally quite similar to their previous
    versions
  • (the internals were probably completely
    re-written)

Sintax max. 80 positions (remember? Punched
card...)
//EPCARS JOB ('VERIFY'),'VERIFY',CLASS1,MSGCLAS
SX Job to be done
//----------------------------------------------
---- comment //STEP1 EXEC PGMIDCAMS
Name of program to be
executed //EMPLOYS DD
DSNDSVAABPS.FIN.A999,DISP(OLD,KEEP) File 1
program will use //SYSIN DD
File 2 program will
use (instream data) VERIFY
FILE(EMPLOYS)
this is the file 2 contents
//SYSPRINT DD SYSOUT
File 3 program will use
20
21
1. Mainframe Concept
  • 1.3 Some mainframe characteristics
  • Compatibility with previous environments
    provided, to preserve investments (and therefore,
    clients) applications developed decades ago can
    be run, in some cases even without recompiling,
    in the ultimate versions of hardware and software

21
22
1. Mainframe Concept
1.3 Some mainframe characteristics
  • Internal machine code EBCDIC (not ASCII)
  • ? Data conversion needed in communication with
    PCs
  • Text-oriented (normally no graphical processing
    no graphical objects)

PC (Ascii code) Out I LOVE YOU Hex49204C4F564
520594F55 In ME TOO Hex4D4520544F4F
Mainframe (Ebcdic code) In I LOVE
YOU HexC940D3D6E540E8D6E4 Out ME
TOO HexD4C540E3D6D6
I LOVE YOU
ME TOO
22
23
1. Mainframe Concept
  • 1.3 Some mainframe characteristics
  • Evolution online processing
  • For the application systems
  • IBM solution a driver to manage online
    applications
  • CICS was (and still is...) responsible for
    managing the resources demanded by most online
    applications (storage, files, CPU use, locks,...)

23
24
1. Mainframe Concept
24
25
1. Mainframe Concept
1.3 Some mainframe characteristics CICS is not a
programming language user has a set of commands
to demand services to CICS, and a host language
is needed (ok, we can use it in another way,
without a host language, but just for development
/ test purposes). It can be Cobol, PL/I, C,
CICS commands embedded in the host language
commands About CICS use, see
http//websphere.sys-con.com/read/46839.htm
25
26
1. Mainframe Concept
1.3 Some mainframe characteristics Some
alternatives to host language with CICS IBM
CSP (discontinued), Visual AGE. Non-IBM
(Software AG) Natural Adabas
Cics (Natural programming language can also be
used to develop batch applications ) (Adabas
DBMS) Most mainframe online applications
worldwide are created using these tools.
26
27
1. Mainframe Concept
1.3 Some mainframe characteristics Evolution
online processing For development support IBM
solution TSO
Menu Help
--------------------
--------------------------------------------------
-------- Utility
Selection Panel

1 Library
Compress or print data set. Print index listing.
Print, rename, delete,
browse, edit or view members 2
Data Set Allocate, rename, delete, catalog,
uncatalog, or display
information of an entire data set
3 Move/Copy Move, or copy
members or data sets
4 Dslist Print or display (to process)
list of data set names.
Print or display VTOC information
5 Reset Reset statistics
for members of ISPF library
6 Hardcopy Initiate hardcopy output
7 Transfer
Download ISPF Client/Server or Transfer data set
8 Outlist Display, delete,
or print held job output
9 Commands Create/change an application
command table 11 Format
Format definition for formatted data
Edit/Browse 12 SuperC
Compare data sets
(Standard Dialog) 13 SuperCE Compare data
sets Extended (Extended
Dialog) 14 Search-For Search data sets for
strings of data (Standard Dialog) 15
Search-ForE Search data sets for strings of data
Extended (Extended Dialog) Option gt ?

F1Help F2Split F3Exit
F7Backward F8Forward F9Swap
F10Actions F12Cancel
27
28
1. Mainframe Concept
1.3 Some mainframe characteristics Program
Samples
28
29
1. Mainframe Concept
Cobol CICS
To produce this simple text screen
29
30
1. Mainframe Concept
You have to specify this physical map
(believe it or not in Assembler language
OK there are some cheap or easier alternatives
to do the same)
Cobol CICS
More...
30
31
1. Mainframe Concept
And this logical map
Cobol CICS
And a program like that (see next 2 pages)
31
32
Cobol as the host language
In red, the CICS embedded commands
1. Mainframe Concept
Cobol CICS
IDENTIFICATION DIVISION.
PROGRAM-ID. DCNESAMP. AUTHOR.
IMA GATOR. INSTALLATION. UF-NERDC,
GAINESVILLE, FL. REMARKS. IBM
VS COBOL II USING CICS COMMAND LEVEL INTERFACE
PURPOSE THIS TRANSACTION DISPLAYS SYSTEM
INFORMATION AND LISTS THE LAST PFKEY
THAT WAS ENTERED. ENVIRONMENT DIVISION.
DATA DIVISION. WORKING-STORAGE
SECTION. 01 WS-CONSTANTS. 05
WS-PROGRAM-ID PIC X(08) VALUE
'DCNESAMP'. 05 WS-TRANS-ID
PIC X(04) VALUE 'NESA'. 05
WS-MAP-NAME PIC X(08) VALUE 'DCNESAM
'. 05 WS-MAPSET-NAME PIC
X(08) VALUE 'DCNESAS '. 05
WS-COMMAREA-LENGTH PIC S9(04) COMP VALUE 8
. 05 WS-MESSAGE-LENGTH PIC
S9(04) COMP VALUE 79. 05 WS-ERRMSG
PIC X(40) VALUE 'NESA
TRANSACTION TERMINATED DUE TO ERROR'.
05 WS-ENDMSG PIC X(22)
VALUE 'NESA TRANSACTION ENDED'. 01
WS-COMMAREA. 05 WS-CA-PGMID
PIC X(08) VALUE SPACES. 01
WS-SWITCHES. 05 WS-FIRST-TIME-SW
PIC X(01) VALUE 'Y'. 88
FIRST-TIME VALUE 'Y'.
88 NOT-FIRST-TIME VALUE
'N'. 05 WS-RETURN-TO-TRAN-SW PIC
X(01) VALUE 'Y'. 88
RETURN-TO-TRAN VALUE 'Y'.
88 END-TRAN VALUE
'N'. 01 WS-HOLD-AREAS. 05
WS-MESSAGE PIC X(79) VALUE SPACES.
05 WS-ABSTIME PIC S9(16)
COMP. 05 WS-SYSDATE PIC
X(08) VALUE SPACES. 05 WS-SYSTIME
PIC X(08) VALUE SPACES. 05
WS-EIBDATE PIC 9(05) VALUE ZERO.
05 WS-RESP PIC S9(08)
COMP VALUE ZERO.
COPY DFHAID. COPY
DCNESASD. LINKAGE SECTION. 01
DFHCOMMAREA PIC X(08).
PROCEDURE DIVISION. 0000-PROGRAM-DCNESAMP.
PERFORM 1000-INITIALIZE. IF
NOT-FIRST-TIME PERFORM
2000-RECEIVE-MAP. PERFORM
3000-SEND-MAP. IF RETURN-TO-TRAN
PERFORM 8000-RETURN ELSE
PERFORM 9000-END-TRANSACTION.
GOBACK. 1000-INITIALIZE. EXEC
CICS HANDLE CONDITION
ERROR(9200-HANDLE-ERROR) END-EXEC.
IF EIBCALEN 0 MOVE
LOW-VALUES TO DCNESAMO MOVE
WS-PROGRAM-ID TO WS-CA-PGMID ELSE
IF EIBCALEN WS-COMMAREA-LENGTH
MOVE 'N' TO WS-FIRST-TIME-SW
MOVE DFHCOMMAREA TO WS-COMMAREA ELSE
PERFORM 9200-HANDLE-ERROR.
2000-RECEIVE-MAP. MOVE LOW-VALUES TO
DCNESAMI. EXEC CICS RECEIVE
MAP(WS-MAP-NAME)
MAPSET(WS-MAPSET-NAME)
INTO(DCNESAMI)
RESP(WS-RESP) END-EXEC. IF
ENDI 'END' OR 'end' MOVE 'N' TO
WS-RETURN-TO-TRAN-SW.
More...
32
33
Cobol as the host language
In red, the CICS embedded commands
1. Mainframe Concept
Cobol CICS
3100-PROCESS-EIBAID. IF EIBAID
DFHNULL MOVE 'NULL ' TO KEYO ELSE IF
EIBAID DFHENTER MOVE 'ENTER' TO KEYO
ELSE IF EIBAID DFHPA1 MOVE 'PA1 ' TO KEYO
ELSE IF EIBAID DFHPA2 MOVE 'PA2 ' TO
KEYO ELSE IF EIBAID DFHPA3 MOVE
'PA3 ' TO KEYO ELSE IF EIBAID
DFHPF1 MOVE 'PF1 ' TO KEYO ELSE IF
EIBAID DFHPF2 MOVE 'PF2 ' TO KEYO
ELSE MOVE 'OTHER' TO KEYO. 8000-RETURN.
EXEC CICS RETURN
TRANSID(WS-TRANS-ID)
COMMAREA(WS-COMMAREA)
LENGTH(WS-COMMAREA-LENGTH) END-EXEC.
9000-END-TRANSACTION. MOVE
WS-ENDMSG TO WS-MESSAGE. PERFORM
9900-TERMINATE. 9200-HANDLE-ERROR.
MOVE WS-ERRMSG TO WS-MESSAGE.
PERFORM 9900-TERMINATE. 9900-TERMINATE.
EXEC CICS SEND
FROM(WS-MESSAGE)
LENGTH(WS-MESSAGE-LENGTH)
ERASE END-EXEC. EXEC CICS
SEND CONTROL FREEKB
END-EXEC. EXEC CICS RETURN
END-EXEC.
3000-SEND-MAP. PERFORM
3100-PROCESS-EIBAID. EXEC CICS
ASKTIME ABSTIME(WS-ABSTIME)
RESP(WS-RESP)
END-EXEC. EXEC CICS FORMATTIME
ABSTIME(WS-ABSTIME)
MMDDYY(WS-SYSDATE)
DATESEP('/')
TIME(WS-SYSTIME)
TIMESEP('') RESP(WS-RESP)
END-EXEC. MOVE WS-SYSDATE TO
DATEO. MOVE WS-SYSTIME TO TIMEO.
MOVE EIBDATE TO WS-EIBDATE. MOVE
WS-EIBDATE TO DATEJO. MOVE EIBTRMID TO
TERMIDO. IF FIRST-TIME OR EIBAID
DFHCLEAR OR DFHCLRP EXEC CICS SEND
MAP(WS-MAP-NAME)
MAPSET(WS-MAPSET-NAME)
FROM(DCNESAMO) ERASE
FREEKB END-EXEC ELSE
EXEC CICS SEND MAP(WS-MAP-NAME)
MAPSET(WS-MAPSET-NAME)
FROM(DCNESAMO)
ERASEAUP FREEKB DATAONLY
END-EXEC.
Thats it
33
34
1. Mainframe Concept
CSP
EZEM90 TEST


gt

ENTER Continue PF3 Exit


............................. FUNCTION
SELECTION .............................




Enter
application name gt


Enter function number gt 2
1 Syntax
check using the preprocessor
2 Run the application


Run Options

Trace gt
YES
Stop on statement count gt 01000
Select statements
to stop on gt NO
Stop PF key gt

Initialization file (name) gt
Delayed
preprocessing gt YES
Change execution defaults
gt NO
34
35
1. Mainframe Concept
Visual Age
35
36
1. Mainframe Concept
Natural
0010 DEFINE DATA LOCAL
0030 1 I
(N4) INITlt-1gt
0040 1 TL-A (N3)
0050
1 AX-A (N3)
0060 1 TL-B (N3)

0070 1 AX-B (N3)
0080 1
FUNA (N5)
0090 1 FUNB (N5)

0100 END-DEFINE
0120 SET KEY
ALL
0140 INPUT USING MAP 'ZZDICOTO'

0160 INPUT USING MAP 'ZZDICOT3'
0180 IF TL-A 0

0190 REINPUT ' ENTER VALUE FOR A'
0200 END-IF

0210 IF TL-B 0

0220 REINPUT ' ENTER VALUE FOR B'
0230 END-IF

0250 AX-A TL-A
0260 AX-B
TL-B
0270 INPUT NO ERASE 1/24 'THE
FUCTION WILL BE X X - 5'
0290 FUNA (AX-A AX-A) - 5
0300 FUNB
(AX-B AX-B) - 5
0320 IF PF-KEY 'ENTR'

0330 INPUT USING MAP 'ZZDICOT2'
0340 IF (FUNA
FUNB) lt 0 THEN
0350 INPUT NO ERASE 13/28
'THERE IS ROOT' 0360 ELSE

0370 INPUT NO ERASE 13/28
'THERE IS NO ROOT' 0380 END-IF

0390 END-IF

0410 END
36
37
1. Mainframe Concept
A little bit easier to build the map
Natural
Ob _ Ob D CLS
ATT DEL CLS ATT DEL .
. T D Blnk T I
? .
. A D _ A I ) .
. A N ª
M D .
. M I O D
. .
O I ( .
.
001 --010--------------030-
-------------050--------------070-------




?NOME
(XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
?ENDERECO
(XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
?TELEFONE (XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX











Enter-PF1---PF2---PF3---PF4---PF5--
-PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Mset Exit Test Edit -- -
Full lt gt Let

NOME

ENDERECO

TELEFONE
37
38
2. Mainframe Users
1. Mainframe concept 1.1 In the sixties 1.2
Suppliers 1.3 Characteristics 2. Mainframe
users 3. Mainframe legacy systems 3.1 Some words
about software assets 3.2 Hardware and Software
survival 3.3 Application Software survival 3.4
People 3.5 Trends
38
39
2. Mainframe Users
Who, since the 60s, are the users? Big
companies both government and private Private
banks and most of the Top 500 Industries (most
of them migrated to SAP or other ERP systems)
Companies like that normally have a long life
most of them are alive today. Some solutions and
processes they use were set long time ago. The
IT systems software - is one of them.
39
40
2. Mainframe Users
Note that its unlike a younger company, born in
the 80s or 90s in this case, the IT solutions
and processes implemented were based on new
designs, new architectures (web, for instance),
new development environments.
40
41
3. Mainframe Legacy Systems
1. Mainframe concept 1.1 In the sixties 1.2
Suppliers 1.3 Characteristics 2. Mainframe
users 3. Mainframe legacy systems 3.1 Some words
about software assets 3.2 Hardware and Software
survival 3.3 Application Software survival 3.4
People 3.5 Trends
41
42
3. Mainframe Legacy Systems
3.1 Some words about the software assets
Lets try to figure out the mainframe market, in
Brazil, nowadays 40 large or medium sized banks
50 government entities (both federal and
state) 100 of the top 500 private Brazilian
companies ? 190 companies working with
mainframe-based applications (Worldwide its a
significant of active mainframes)
42
43
3. Mainframe Legacy Systems
Lets try to figure out the size of the software
assets of these companies (mainframe software)
( numbers based upon my experience) Assuming
a) 1000 LOCs / program average () b) 125 /
Function Point (Capers Jones, SPR) See
http//www.boston-spin.org/slides/031-Oct02-talk.p
pt c) 1 FPs 80 LOCs (3rd generation language
default, Caper Jones, SPR) See http//www.spr.com/
products/programming.shtm
43
44
3. Mainframe Legacy Systems
The cost to change the application using new
technologies, with new designs, is too expensive.
44
45
3. Mainframe Legacy Systems
3.2 Hardware and Software survival Theres a
kind of supplier commitment to provide
compatibility with previous versions (backward
compatibility) there is no reason for great
concerns about obsolete environments programs
always run on new equipment. Hardware has the
ability to run (host) many operating systems /
virtual machines. There is also the backward
compatibility commitment with the base software
(operating systems, compilers, dbms, etc.)
45
46
3. Mainframe Legacy Systems
  • 3.3 Application Software survival - Reliability
  • It is well known that the more a software is
    tested, the more it is error-free and, thus,
    reliable.
  • Mainframe software technologies do not change
    substantially.
  • In the mainframe area, quickly releasing new
    products and new versions isnt as fundamental as
    it is in the other platforms (remember there is
    no competition).
  • There is enough time to do the necessary tests.
  • The products are released in very reliable
    versions.

46
47
3. Mainframe Legacy Systems
  • 3.3 Application Software survival - Reliability
  • Unavailability in a net PC and in a server
    supporting thousands of workstations is quite
    different.
  • Unscheduled boots rarely occur
  • There is a small number of interfacing
    components to track and correct errors is easier

47
48
3. Mainframe Legacy Systems
  • 3.4 Application Software survival - People
  • People who designed, developed, worked on the
    systems leave the company.
  • Theres a need to replace these technicians.
  • In Universities, theres practically no more
    training on Mainframe technologies CICS, Cobol,
    batch programming logic for example, how to
    create a report, controlling lines, pages,
    breaks, etc? Do you know OOP? Forget it!

48
49
3. Mainframe Legacy Systems
  • 3.4 Application Software survival - People
  • How do companies deal with this point?
  • Internal training
  • Ex. 6 months programme with
  • Mainframe concepts
  • Programming logic
  • JCL and utilities
  • Cobol
  • PL/I
  • CICS
  • DB2
  • TSO / Roscoe
  • Training suppliers

49
50
3. Mainframe Legacy Systems
  • 3.5 Application Software survival Trends
  • Batch applications
  • Theyll probably continue the same way
  • I bet 20 years from now youll see a batch
    system running in a quantum computer, reading
    80 byte records as cards

50
51
3. Mainframe Legacy Systems
  • 3.5 Application Software survival Trends
  • Online applications
  • Break the application into layers
  • Change the application foreground layer (front
    end) by web based application
  • Leave the mainframe as a DB Server and
    background layer Server
  • Probably all terminal I/O operations migrating
    to the PC based applications
  • Probably all DB operations left in the mainframes

51
52
3. Mainframe Legacy Systems
3.5 Application Software survival Trends
52
53
Questions
Questions ?
53
Write a Comment
User Comments (0)
About PowerShow.com