System Architecture and Implementation

System Architecture and Implementation

Ibrahim Dweib (Sultan Qaboos University, Oman) and Joan Lu (University of Huddersfield, UK)
DOI: 10.4018/978-1-4666-1975-3.ch017


This chapter presents the system architecture, and implementation tools used for evaluating the MAXDOR model. The chapter also presents the main classes created to demonstrate the methodology for mapping XML document into relational database, rebuilding XML document from relational database, updating the content of XML document stored in relational database, XPath-To-SQL query translation, and building the result in XML format. Application on a case study is also presented. XML data sets from selected XML bench marks and XML data repository will be identified to be used for testing and evaluating the model. Finally, the chapter concludes with a summary.
Chapter Preview

System Architecture And The Used Tools

<b>System Architecture</b></div><p>System architecture consists of four main components each of which represents one of the project requirements. Those components are:</p><ul class="xmlReaderUl"><li><i>1. </i><p><b>Mapping XML document into relational database:</b> the system loads the XML document and parses it using XML SAX parser as a sequence of events, shreds the document content into tokens, and inserts these tokens into predefined relational database schema. Detail of the relational schema has been given in chapter 4.</p></li><li><i>2. </i><p><b>Reconstructing XML document from relational database:</b> this component goes through the relational tables and reconstructs the requested XML document to check the method for lossless of XML document information in Part one or to exchange or export the document to other location.</p></li><li><i>3. </i><p><b>Updating XML document stored in relational database:</b> by this component, the user is given the facility to update the XML document stored in relational database. Update includes: inserting new tokens as element or element attributes, delete tokens or tokens' re-allocation within the document, and modify tokens' name and values.</p></li><li><i>4. </i><p><b>Retrieving and querying XML document stored in relational database:</b> throughout this component, XPath queries are translated into SQL statements. The resultant SQL statements are fired against the database engine so as to retrieve XML data results. The retrieved results are reconstructed as XML hierarchical format and returned to the user. Figure 1 gives an overview of the system architecture.</p></li></ul><div class="xmlReaderFig"><i>Figure 1. </i><div class="xmlReaderFig"><p>MAXDOR architecture</p></div><div style="width: 100%;"><a href="/sourcecontent/9781466619753_64884/978-1-4666-1975-3.ch017.f01.png" target="_blank"><img src="/sourcecontent/9781466619753_64884/978-1-4666-1975-3.ch017.f01.png" style="max-width: 100%;" /></a></div></graphic></div><p>The above listed components will be tested and evaluated in Chapter 6 for the MAXDOR model described in chapter 4. The following points are taken into consideration during system design; i.e. components of the system should be:</p><ul class="xmlReaderUl"><li><i>• </i><p><b>Testable against requirements:</b> every requirement should be easy to test.</p></li><li><i>• </i><p><b>Structured:</b> the system structure should be clear, read and its code should be easy and understandable.</p></li><li><i>• </i><p><b>Reusable:</b> the system design should be reusable and repeatable.</p></li></ul></div><div><title style="title-2" titleHref="tools-used"><b>Tools Used</b></div><p>The tools used in the project can be classified into:</p><ul class="xmlReaderUl"><li><i>1. </i><p>XML interface: both input and output documents are XML format and relational database technology is a target tool for storing XML documents' contents and structure; so, the relational database capabilities are used for internal processing of data.</p></li><li><i>2. </i><p>XPath or XQuery as source languages provided for users to represent their requests. SQL query language is a target language used against relational database to answer users’ queries. XPath is used for the following two reasons:</p><ul class="xmlReaderUl"><li><i>a. </i><p>XPath is simpler than XQuery, and hence would be better to achieve the objective of testing our model in current situation.</p></li><li><i>b. </i><p>Its structure is included in XQuery, so it is easier to be upgraded into XQuery.</p></li></ul></li><li><i>3. </i><p>Visual Basic 6.0 programming language is used as a tool to create the GUI and to implement the system components. It is used for the following reasons:</p><ul class="xmlReaderUl"><li><i>a. </i><p>VB structure is simple, mainly as to the executable code.</p></li><li><i>b. </i><p>VB is easy for building graphical user interfaces.</p></li><li><i>c. </i><p>VB application is easily connected with Microsoft Access database.</p></li></ul></li><li><i>4. </i><p>Microsoft Office Access is used as a relational database management system (RDBMS). It is used for the following reasons:</p><ul class="xmlReaderUl"><li><i>a. </i><p>It can be easily used with visual basic programming language.</p></li><li><i>b. </i><p>Access database can be easily sited on a website for access by remote users. Simple screens can be built in Access, Data Access Pages. Or it can be employed using Active Server Page (ASP) scripting.</p></li></ul></li></ul></div><div class="preview-footer"><a href="javascript:__doPostBack('ctl00$cphFeatured$lnkAddToCart','')">Purchase this chapter to continue reading all 13 pages ></a></div></div><div id="table-of-contents"><h2>Complete Chapter List</h2><div class="search-contents"><span class="text"> Search this Book: </span><span class="text-box-container"><input id="txtKeywords" type="text" maxlength="50" onkeypress="return SearchBookFulltextHandleEnter(event, 64884);" placeholder="Full text search terms" title="Full text search terms" class="full-text-search-box" /></span><div class="inline-block search-contents-xs-full-width"><span class="search"><span class="search-button" onclick="RemoveSpecialCharacters();SearchBookFulltext(64884);"></span></span><span class="reset"><span onclick="RemoveSpecialCharacters();SearchBookFulltextReset();" class="link-gray-s">Reset</span></span></div></div><div id="searchResults"></div><div id="full-toc"></div><div id="loading-toc" class="text-align-center"><div class="loading-icon-lg"></div></div><script type="text/javascript"> $(document).ready(function () { var bookId = 64884; var titleId = 69140; var subjectId = 5; var compactView = 'True'; var onDemandDiscountDisplayPrice = ''; var onDemandDisplayPrice = '$37.50'; var chapterCount = 31; if (chapterCount !== 0) { GetBookToc(bookId, titleId, subjectId, compactView, onDemandDiscountDisplayPrice, onDemandDisplayPrice); } else { GetBookTocFromSubmissionSystem(bookId, titleId, subjectId, compactView, onDemandDiscountDisplayPrice, onDemandDisplayPrice); } }); </script></div></div></div></div><script type="text/javascript"> MenuAdjust(); $(window).on('resize orientationChange', function (event) { MenuAdjust(); }); </script><footer class="footer"><div class="container"><div class="row"><div class="top-margin"><div class="col-md-6"><div class="footer-header"> Learn More </div><div class="text"><a href="/about/" class="footer-link">About IGI Global</a> | <a href="/about/partnerships/" class="footer-link">Partnerships</a> | <a href="/contact/" class="footer-link">Contact</a> | <a href="/about/staff/job-opportunities/" class="footer-link">Job Opportunities</a> | <a href="/faq/" class="footer-link">FAQ</a> | <a href="/about/staff/" class="footer-link">Management Team</a></div><div class="footer-header header-margin-top"> Resources For </div><div class="text"><a href="/librarians/" class="footerlink">Librarians</a> | <a href="/publish/" class="footerlink">Authors/Editors</a> | <a href="/distributors/" class="footerlink">Distributors</a> | <a href="/course-adoption/" class="footerlink">Instructors</a> | <a href="/about/rights-permissions/translation-rights/" class="footerlink">Translators</a> | <a href="" class="footerlink" target="_blank">Copy Editing Services</a></div><div class="footer-header header-margin-top"> Media Center </div><div class="text"><a href="/symposium/" class="footer-link">Webinars</a> | <a href="/newsroom/" class="footer-link">Blogs</a> | <a href="/catalogs/" class="footer-link">Catalogs</a> | <a href="/newsletters/" class="footer-link">Newsletters</a></div><div class="footer-header header-margin-top"> Policies </div><div class="text"><a href="/about/rights-permissions/privacy-policy/" class="footer-link">Privacy Policy</a> | <a href="/cookies-agreement/" class="footer-link">Cookie & Tracking Notice</a> | <a href="/about/rights-permissions/content-reuse/" class="footer-link">Fair Use Policy</a> | <a href="/about/rights-permissions/ethics-malpractice/" class="footer-link">Ethics and Malpractice</a></div></div><div class="col-md-6 td-r"><div class="td-r-t"><div class="footer-rightside-container"><div class="left"><div style="margin-bottom: 1em;"><a href="" target="_blank"><span class="fb"></span></a> <a href="" target="_blank"><span class="tw"></span></a></div><div><a href="" target="_blank"><img src="/images/proud-supporter-of-wfcf-07282015.png" alt="World Forgotten Children's Foundation" title="Proud Supporter of the World Forgotten Children's Foundation" width="157" height="52" /></a></div></div><div class="right"><div class="conference-badges-container"><a class="conference-badge" href="" target="_blank"><img src="/Images/Conferences/aom-2018.png" width="250" height="124"></a></div></div></div></div><div class="text copyright-text">Copyright © 1988-2018, IGI Global - All Rights Reserved</div></div></div></div></div></footer><div class="aspNetHidden"><input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="679D6B48" /><input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="skMdDroC55933XYIbCpOqi7849Rb8Tuh3QHHUkMydOhrFq49DovVQORICFlDf0CXqf61636dA1RB/Of1cwr655keKXmwiNX1Ix1SsITRYnXRdRFJ3pvqxYaYf5oIX2gKf7/JnNv0Y9OkShs/j5kim43qtnqecDdQfFn6o5U0kgZNzKUXqCq2IjvXKiFuIWRxbESHjj6HAHsut8pszpJGeZwt6sKWWDaGf7OMHVcNWaaoixoz+y7P/3rrd+U9s5Qz0QctEtIuVN7ycMJT7QqOzqEL9xzMqZeQg6P5XOuj1DLsFfkH3r5vqMZPwOUoHWs8BzIyk9MslHWMEF8XVq5qm7LJ/8LqltPjf5M+IEZJhGaHPVnCqPXP2YDSvhXKoj7A97IXarkUanP8h8UwVnyoFyufN37cU1NWxVTbxf1Xafs7jL++" /></div></form></body></html>