12015-08-07 These materials are prepared only for the students enrolled in the course Distributed...
-
Upload
adele-bridges -
Category
Documents
-
view
223 -
download
0
Transcript of 12015-08-07 These materials are prepared only for the students enrolled in the course Distributed...
123-04-19
• These materials are prepared only for the students enrolled in
the course Distributed Software Development (DSD) at the
Department of Computer Science and Engineering,
University of Mälardalen, Västerås, Sweden and at the Faculty
of Electrical Engineering and Computing, University of Zagreb,
Croatia (year 2003/2004).
• For all other purposes, authors’ written permission is needed!
• The purpose of these materials is to help students in better
understanding of lectures in DSD and not their replacement!
NOTICE!
223-04-19
Selected Topics in Software Engineering -
Distributed Software Development
323-04-19
ASN.1 to CSV converter generator
Project Current state presentation2008-12-04
MDH:
Guido Di Campli
Giovanni Piemontese
Paolo D’Amelio
FER:
Ivan Škugor
Željko Krpetić
Željko Knežević
Steering group: Igor Čavrak at FERRikard Lang at MDHM.Sc. Branko Beslać (Ring datacom)
What we will talk about?
• Problems
• Solution modification
• Interfaces
• Alternative solution
• GUI
• General project status
423-04-19
Problems - Mapping of BER to CSV
- The BER file format (as described by the ASN.1 grammar) is a structured format, while CSV is a linear format
- There is NO direct 1:1 mapping from BER files to CSV files !
- In cooperation with our customer we found a solution- Data in each node of the grammar is represented with a
separate, different row in the CSV file- Each row has a type identifier at the beginning- It is not a real CSV file
523-04-19
Problems – testing a lot of tools
Open Source- SNACC/eSNACC- ASN1C- Libtasn1- ...
Commercial software- ASN.1 analyzer (Japan)- ASN1C ASN1 Compiler (Objective systems)- MARBEN™ ASNSDK TCE
623-04-19
Problems – eSNACC modification
- Modifying eSNACC turned out to be very difficult.- Even just compiling eSNACC from source code was
problematic- Finding and modifying ASN.1 parsing routines was a
major problem- We found a better solution (using another ASN1C tool
and our own parsing routines)
723-04-19
Problems - Custom code generator
- Generating code for all possible cases could be a problem
- We extracted many rules from only one sample grammar (and of course, that was the simple one :)
- We decided to look for other solutions- We found that BER files have a 1:1 mapping with XML- Alternative solution : use a 3rd party BER to XML
converter, and then parse the XML file and generate CSV output
823-04-19
Old software architecture
923-04-19
Solution modifications
1023-04-19
Interfaces
1. Between tree generator and GUI
2. Between GUI and Custom code generator
1123-04-19
Example ASN.1 Grammar
1223-04-19
Nrtrde ::= [APPLICATION 1] SEQUENCE
{
specificationVersionNumber SpecificationVersionNumber OPTIONAL, -- *m.m.
releaseVersionNumber ReleaseVersionNumber OPTIONAL, -- *m.m.
sender Sender OPTIONAL, -- *m.m.
recipient Recipient OPTIONAL, -- *m.m.
sequenceNumber SequenceNumber OPTIONAL, -- *m.m.
fileAvailableTimeStamp FileAvailableTimeStamp OPTIONAL, -- *m.m.
utcTimeOffset UtcTimeOffset OPTIONAL, -- *m.m.
callEvents CallEventList OPTIONAL,
callEventsCount CallEventsCount OPTIONAL -- *m.m.
}
CallEventList ::= [APPLICATION 2] SEQUENCE OF CallEvent
CallEvent ::= CHOICE
{
moc Moc,
mtc Mtc,
gprs Gprs
}
First interface - XML
1323-04-19
Second interface – Xpath format
/Nrtrde[@type=‘SEQUENCE’]/CallEventList[@type=‘SEQUENCE OF’]/CallEvent[@type=‘CHOICE’]/Moc[@type=‘SEQUENCE’]/Imsi[@optional=‘YES’]
/Nrtrde[@type=‘SEQUENCE’]/CallEventList[@type=‘SEQUENCE OF’]/CallEvent[@type=‘CHOICE’]/Moc[@type=‘SEQUENCE’]/Imei[@optional=‘YES’]
/Nrtrde[@type=‘SEQUENCE’]/CallEventList[@type=‘SEQUENCE OF’]/CallEvent[@type=‘CHOICE’]/Moc[@type=‘SEQUENCE’]/CallEventDuration [@optional=‘YES’]
/Nrtrde[@type=‘SEQUENCE’]/CallEventList[@type=‘SEQUENCE OF’]/CallEvent[@type=‘CHOICE’]/Moc[@type=‘SEQUENCE’]/DialledDigits [@optional=‘YES’]
/Nrtrde[@type=‘SEQUENCE’]/CallEventList[@type=‘SEQUENCE OF’]/CallEvent[@type=‘CHOICE’]/Moc[@type=‘SEQUENCE’]/ChargeAmount [@optional=‘YES’]
1423-04-19
Alternative solution
1523-04-19
BER
1623-04-19
BER to XML
1723-04-19
(Quasi) CSV
1823-04-19
Custom code generator, xml2csv.c &XML to CSV converter
1923-04-19
GUI
2023-04-19
General project status
Activityw45 w46 w47 w48 w49 w50 w51 w52 w1 w2 w3
Project plan
Requirements analysis & definition
System Design
Tree view generator
Converter generator
GUI
Integration
Testing
Final Product
2123-04-19
Project status : slightly behind
Summary
- We learned a lot about the task and the standards that are involved
- Now we understand the problem much better, and our customer also understands the problem much better
- We hope that this presentation will help the steering team also understand the problem.
2223-04-19
Summary
- The official name of the project is "ASN.1 to CSV converter“
- The input file is in fact a BER file (The BER format specifies a self-describing and self-delimiting format for encoding ASN.1 data structures)
- The output file isn't actually in CSV format (because it's impossible to convert BER to that kind of format)
- We are not producing a converter but a converter generator, and that is significantly different
- We put a lot effort to understand all this things
2323-04-19