Академический Документы
Профессиональный Документы
Культура Документы
** Rough Draft **
** Company Confidential **
Written by
Mark Silvestri and Nirit Lvovsky
SymmWin Group
Date Printed: 15-Jan-2004
Last Modified: 15-Jan-2004
EMC Corporation
171 South Street
Hopkinton, MA 01748-9103
Corporate Headquarters: (508) 435-1000, (800) 424-EMC2
Fax: (508) 435-5374 Service: (800) SVC-4EMC
TABLE OF CONTENTS
1.
EXECUTIVE SUMMARY....................................................................................................................................... 5
1.1
DESCRIPTION........................................................................................................................................................5
1.2
GOAL ......................................................................................................................................................................5
1.3
A UDIENCE .............................................................................................................................................................5
1.4
RELATED DOCUMENTATION ............................................................................................................................5
1.5
RELEASE NOTES...................................................................................................................................................6
1.6
DESCRIPTION OF TERMS USED ..........................................................................................................................6
1.7
HOW TO READ THIS DOCUMENT .....................................................................................................................6
1.8
BACKUS-NAUR FORM (BNF) ..............................................................................................................................7
1.8.1
Standard Syntactic Categories .............................................................................................................. 7
2.
EXISTING SYSTEM............................................................................................................................................... 8
2.1
EXISTING PROBLEMS...........................................................................................................................................8
2.2
DLL INTERFACE ...................................................................................................................................................8
2.3
EXAMPLE OF W EB BASED INTERFACE ............................................................................................................9
2.3.1
Web Input Page........................................................................................................................................10
2.3.2
Web Report Page.....................................................................................................................................11
2.4
BASIC OVERVIEW OF DATA M OVEMENT ......................................................................................................11
2.5
EXPECTATION ....................................................................................................................................................11
2.5.1
Look and Feel ..........................................................................................................................................12
2.5.2
Data Flow.................................................................................................................................................12
2.5.3
Working With Symmwin .........................................................................................................................12
3.
WORK TO BE DONE..........................................................................................................................................13
3.1
PHASE I - DESIGN ................................................................................................................................................13
3.1.1
Overview/Presentation...........................................................................................................................13
3.1.2
API Primitives Design.............................................................................................................................13
3.1.3
API One-Shot Solution Design .............................................................................................................13
3.1.4
Internal Data Structure Design............................................................................................................13
3.1.5
GUI.............................................................................................................................................................13
3.2
PHASE II - IMPLEMENTATION /CODING .........................................................................................................13
3.2.1
API Library(s) ..........................................................................................................................................13
3.2.2
Symmwin DLL...........................................................................................................................................13
3.3
PHASE III - DEBUG/TESTING.............................................................................................................................13
3.3.1
Standalone Test Application ................................................................................................................13
3.3.2
Automated Test Application..................................................................................................................13
3.3.3
Symmwin ...................................................................................................................................................14
3.4
PHASE IV - RELEASE ..........................................................................................................................................14
3.5
PHASE V - IMPROVE SYSTEM ...........................................................................................................................14
4.
4.1
OVERVIEW...........................................................................................................................................................15
4.2
CHANGES FROM 6.0............................................................................................................................................15
4.3
API .......................................................................................................................................................................15
4.3.1
CalcCacheXml()......................................................................................................................................15
4.3.2
XML Specific Syntactical Categories..................................................................................................16
4.3.3
Tag Listing (DLL Input).........................................................................................................................17
4.3.4
Tag Listing (DLL Output)......................................................................................................................18
4.3.5
XML Examples .........................................................................................................................................18
-i-
4.3.6
Restrictions...............................................................................................................................................19
4.4
REMAINING ISSUES.............................................................................................................................................19
4.4.1
Illegal XML Returned in Error XML....................................................................................................19
4.5
EXAMPLE SCENARIOS.......................................................................................................................................19
5.
5.1
5.2
5.3
5.4
5.5
6.
6.1
SEVERITY ONE ISSUES.......................................................................................................................................21
6.1.1
<Issue Name>..........................................................................................................................................21
6.2
SEVERITY TWO ISSUES......................................................................................................................................21
6.2.1
<Issue Name>..........................................................................................................................................21
6.3
SEVERITY THREE ISSUES ..................................................................................................................................21
6.3.1
<Issue Name>..........................................................................................................................................21
- ii -
TABLE OF FIGURES
Figure 1 - Existing DLL Interface.................................................................................................................................. 8
Figure 2 - Example VB Call to DLL Interface............................................................................................................... 9
Figure 3 - Example of Web Based Interface.............................................................................................................. 10
Figure 4 - Example of Web Based Output................................................................................................................. 11
Figure 5 - Data Flow..................................................................................................................................................... 11
Figure 6 - Design Data Flow Expectation.................................................................................................................. 12
Figure 7 - Implementation with Symmwin ................................................................................................................. 12
Figure 8 - Version 6.5 DLL Interface.......................................................................................................................... 15
Figure 9 - Version 7 DLL Interface............................................................................................................................. 20
- iii -
TABLE OF TABLES
Table 1 - Release Notes ................................................................................................................................................. 6
Table 2 - Description of Terms ..................................................................................................................................... 6
Table 3 - XML Syntactical Categories ...................................................................................................................... 16
Table 4 - XML Tag Listing of DLL Input.................................................................................................................. 17
Table 5 - XML Tag Listing of DLL Output............................................................................................................... 18
- iv -
1. Executive Summary
1.1 Description
This document describes the Power and Cache Calculator tool. It describes how the system works today, how it will
work in the near future, as well as how it will work upon completion of its next major release.
As of November 2003, the Symmwin group has taken control of the Power and Cache Calculator tool. The existing
problems include:
1.2 Goal
The goal of this project is to provide a reasonably simp le tool to be used throughout EMC to calculate cache and
power requirements for a Symmetrix. It is expected that upon completion, all users (Sales, Symmwin, Engineering,
etc.) will switch to use this new single format.
1.3 Audience
The primary audience of this document includes:
It is understood that the reader of this document has a solid working knowledge of:
Mark Silvestri
Page 5
1/15/2004
Revision
?.?
Author
Description
MWS
Original Document.
Definition/Usage
Common Object Model
Distributed Common Object Model
Graphical User Interface (e.g., a Window)
Table 2 - Description of Terms
Keys that should be pressed on the keyboard will be shown this way:
<Enter>, <Ctrl>, <F8>
Buttons on the screen which should be pressed with the mouse will be displayed this way:
[Next], [OK], [Calculate]
Sections that look like this are comments from the author(s). These comments generally raise issues that need to be
addressed by someone other than the author(s).
Mark Silvestri
Page 6
1/15/2004
Words inside double-quotes ("word") represent literal words themselves (these are called terminals). The phrase
"double-quote" is used to represent the double -quote character itself. For example: "if".
Words outside double-quotes (possibly with underscores) represent syntactic categories (i.e., nonterminals).
For example: if_statement.
Syntactic categories are defined using the form:
syntactic_category ::= definition
Square brackets ([]) surround optional items.
Curly brackets ({}) surround items that can repeat zero or more times.
A vertical line (|) separates alternatives.
Mark Silvestri
::=
::=
::=
::=
::=
::=
::=
::=
"0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"
"+"|"-"
" "
"a"|"b"|..|"y"|"z"|"A"|"B"|..|"Y"|"Z"
Digit{Digit}
Alpha
[Sign]Integer[.Integer]
""{""|Alpha|Digit|Space|.}
Page 7
1/15/2004
2. Existing System
The existing system runs across three different system. All three are generated from separate source code. The three
different systems are:
<params>
<model>DMX3000</model>
<dae>0</dae>
<ficonfed>8</ficonfed>
<esconfed>0</esconfed>
<fige>0</fige>
<cacheboards>8</cacheboards>
<hypervols>Default</hypervols>
<containsvdevs>0</containsvdevs>
"<host>
<type>OP</type>
<drive>146K</drive>
<raid>MIRRORED</raid>
<drives>576</drives>
<custlogvols>0</custlogvols>
</host>
</params>"
DLL
XML
I
N
P
U
T
Data
Crunch
O
U
T
P
U
T
XML
<params>
<model>DMX3000</model>
<dae>0</dae>
<ficonfed>8</ficonfed>
<esconfed>0</esconfed>
<fige>0</fige>
<cacheboards>8</cacheboards>
<hypervols>Default</hypervols>
<containsvdevs>0</containsvdevs>
"<host>
<type>OP</type>
<drive>146K</drive>
<raid>MIRRORED</raid>
<drives>576</drives>
<custlogvols>0</custlogvols>
</host>
</params>"
Mark Silvestri
Page 8
1/15/2004
The following example is all of the test code we received from we agreed to take over the code.
Private Sub btnGetResults_Click()
Dim strXml As String
Dim objCache As New CacheComp.clsCache
strXml
strXml
strXml
strXml
strXml
strXml
strXml
strXml
strXml
strXml
strXml
strXml
strXml
strXml
strXml
strXml
strXml
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
"<params>"
strXml & "<model>DMX3000</model>"
strXml & "<dae>0</dae>"
strXml & "<ficonfed>8</ficonfed>"
strXml & "<esconfed>0</esconfed>"
strXml & "<fige>0</fige>"
strXml & "<cacheboards>8</cacheboards>"
strXml & "<hypervols>Default</hypervols>"
strXml & "<containsvdevs>0</containsvdevs>"
strXml & "<host>"
strXml & "<type>OP</type>"
strXml & "<drive>146K</drive>"
strXml & "<raid>MIRRORED</raid>"
strXml & "<drives>576</drives>"
strXml & "<custlogvols>0</custlogvols>"
strXml & "</host>"
strXml & "</params>"
strResult = objCache.calculatecache(strXml)
MsgBox strResult
End Sub
Mark Silvestri
Page 9
1/15/2004
Question: Do we want to set up the system so that volumes requested looks similar to that of
Symmwin?
Mark Silvestri
Page 10
1/15/2004
2.5 Expectation
This section will explain what the general expectations are of the new Power and Cache Calculator System.
Mark Silvestri
Page 11
1/15/2004
Mark Silvestri
Page 12
1/15/2004
3. Work to be done
3.1 Phase I - Design
3.1.1 Overview/Presentation
How the system will work. This should be a document describing the project as whole. What
needs to be done and what will be the finished product.
3.1.5 GUI
It is expected that there will be no GUI whatsoever in this system. All GUIs will need to be
generated by calling applications.
Mark Silvestri
Page 13
1/15/2004
3.3.3 Symmwin
Mark Silvestri
Page 14
1/15/2004
4.1 Overview
This code will still be a "one-shot" solution where all data is passed in a single function call and all the return data is
returned from the one function call. This is similar to the XML solution, except removes all the XML parsing that is
required.
<params>
<model>DMX3000</model>
<dae>0</dae>
<ficonfed>8</ficonfed>
<esconfed>0</esconfed>
<fige>0</fige>
<cacheboards>8</cacheboards>
<hypervols>Default</hypervols>
<containsvdevs>0</containsvdevs>
"<host>
<type>OP</type>
<drive>146K</drive>
<raid>MIRRORED</raid>
<drives>576</drives>
<custlogvols>0</custlogvols>
</host>
</params>"
DLL
XM
L
I
N
P
U
T
API
L
XM
Data
Crunch
O
U
T
P
U
T
API
<params>
<model>DMX3000</model>
<dae>0</dae>
<ficonfed>8</ficonfed>
<esconfed>0</esconfed>
<fige>0</fige>
<cacheboards>8</cacheboards>
<hypervols>Default</hypervols>
<containsvdevs>0</containsvdevs>
"<host>
<type>OP</type>
<drive>146K</drive>
<raid>MIRRORED</raid>
<drives>576</drives>
<custlogvols>0</custlogvols>
</host>
</params>"
Mark Silvestri
Page 15
1/15/2004
::=
::=
::=
HostType
ModelPrefix
ModelType
::=
::=
::=
TagName
StartTag
::=
::=
EndTag
::=
Mark Silvestri
Page 16
1/15/2004
Valid Values
Usage
Parameters Section [Required]
params
model ModelType
platform Platform
dae 1..8
fibrefed 1..8
ficonfed 1..4
esconfed 1..4
fige 0..8
cacheboards 0..8
Description
hypervols Integer
containsvdevs 0 | 1
Host Sub-Section [Required; Must be at least 1 host]
host
type HostType
The type of host
drivesize DriveSize
raid Protection
drivecount Integer
custlogvols Integer
Mainframe Virtual (MF) Devices Sub-Section [Optional; Supports Many]
mf_vdevs
mf_dataprotection Protection
Protection Level of Virtual Device
mf_vdevchange 0..100
Virtual Device Percentage Change
mf_savedevunitsize Integer
Virtual Device Unit Size in GB
Open Systems (OS) Virtual Devices Sub-Section [Optional; Supports Many]
os_vdevs
os_dataprotection Protection
Protection Level of Virtual Device
os_vdevchange 0..100
Virtual Device Percentage Change
os_savedevunitsize Integer
Virtual Device Unit Size in GB
Integer
Integer
Mark Silvestri
Page 17
1/15/2004
Valid Values
Description
Usage
Output Section [Required]
output
c###gb Integer
mincache
Integer
power
Error Sub-Section
Error
Integer
The specific number of memory boards of the given type where the
### is the size of the memory board in GB.
The total amount of cache required by the system. It is the total of the
board sizes and counts.
The number of power supplies the system would require.
Mark Silvestri
Page 18
1/15/2004
4.3.6 Restrictions
The Host, Virtual Devices, and Virtual Device tag item sections must be given in the order listed in Table 4.
White Space
4.4.1.2 Solution
Question:?
Mark Silvestri
Page 19
1/15/2004
5.1 Overview
This code will still support both "one-shot" solutions, however, it will now also support option of building a
configuration one function at a time.
<params>
<model>DMX3000</model>
<dae>0</dae>
<ficonfed>8</ficonfed>
<esconfed>0</esconfed>
<fige>0</fige>
<cacheboards>8</cacheboards>
<hypervols>Default</hypervols>
<containsvdevs>0</containsvdevs>
"<host>
<type>OP</type>
<drive>146K</drive>
<raid>MIRRORED</raid>
<drives>576</drives>
<custlogvols>0</custlogvols>
</host>
</params>"
DLL
XM
L
I
N
P
U
T
L
XM
Data
Crunch
O
U
T
P
U
T
AP
I
API
<params>
<model>DMX3000</model>
<dae>0</dae>
<ficonfed>8</ficonfed>
<esconfed>0</esconfed>
<fige>0</fige>
<cacheboards>8</cacheboards>
<hypervols>Default</hypervols>
<containsvdevs>0</containsvdevs>
"<host>
<type>OP</type>
<drive>146K</drive>
<raid>MIRRORED</raid>
<drives>576</drives>
<custlogvols>0</custlogvols>
</host>
</params>"
5.3 API
5.4 Remaining Issues
Mark Silvestri
Page 20
1/15/2004
Mark Silvestri
Page 21
1/15/2004