Download presentation
Presentation is loading. Please wait.
Published byShon Bell Modified over 8 years ago
1
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA
2
Easily Extensible Systems Definition: A system that can have units of code, or extensions, to be added to the running system.. Examples: the java Solaris operating system.. Issues to consider: -anyone can design these modules so some could not be in a similar format or could be malicious. -The code used could be incompatible with the code supported by the server or even the system itself. -Size is also an issue as visual modules could be several MB or even close to GB, so the choice of server and bandwidth would need to be considered.. Possible solutions: -An ‘access control mechanism’ (ACM) is used in some extensible systems to enforce security policies on different areas of the system. This is outlined in: http://cat.inist.fr/?aModele=afficheN&cpsidt=944994. http://cat.inist.fr/?aModele=afficheN&cpsidt=944994 -When the module is uploaded, possible through the web interface or FTP, there could be code to check the module uploaded.
3
Collecting Information to produce a Detailed Spec I have interpreted this question as how information will be collected on the data to produce a detailed specification as this is how we are collecting information to produce a spec for the system. This was mostly answered by the System design that Daffydd provided but this is my idea of how it will be collected. A Web based GUI will be provided for the user and they will choose the Analytical modules that they require to be performed on their data. I did consider a generic form for every module but that would require excess data for some modules and different data may be required therefore I thought the best bet would be for a generic form for EACH module depending on the data required. The options available seem to be: the user can upload widely recognised file type (csv, xls etc) containing the data set, email the data to be sorted by the system or a web based form that would be provided for each module in succession. The downside for uploading a file could be bandwidth and space as well as the fact that the user may not be able to provide data in that file type. Also, there could be errors in the data and each field would need to be checked, this could take a lot of processing power. Emailing the data could mean that it would have to be sorted, possibly by a human to ensure integrity. It has been made clear that our client would like to keep costs and manpower as low as possible so this may not be the most efficient option. I have come to the conclusion that the web based form is best, it may be more time consuming than some of the other options and it may also involve entering the same piece of data more than once. I figure that there is a way of storing the data already entered into some form of database and if a later required data field is already full then that will be left out of the form.
4
Octave and other Options The best option for the system would be a program called MATLAB, used to implement algorithms and plot functions of data. Built around the M-Code, MATLAB allows data to be plotted in 2-D and 3-D forms. As this is supposed to be an open source system, a license for MATLAB would be very expensive. However, there are open source options that provide the same functionality with no cost. The most common alternative is a program called: Octave. Same as MATLAB, it provides a command line interface to solve linear and non-linear problems numerically. Octave is essentially a statistical compiler that supports: C, C++, Fortran or other languages. The main setback is the code MATLAB uses is faster to compile and run than the languages supported by Octave. This could be something to consider when dealing with large data sets.
5
Statistical Analysis Modules Octave supports many languages and performs large calculations on data sets. Octave can be implemented directly into code and can be then implemented into one of the many Octave programs available. For example: The most common GUI-QtOctave, created to be the MATLAB counterpart. http://qtoctave.wordpress.com/what-is-qtoctave/ http://qtoctave.wordpress.com/what-is-qtoctave/ A Web Interface-Online access to Octave. http://www.online-utility.org/math/math_calculator.jsphttp://www.online-utility.org/math/math_calculator.jsp The online utility could be extremely useful as the mathematical formula is simply input into a Text Box, so a module could be created to pass these details from the server (or network) to the website to allow calculations to be performed, saving server space. Octave has been created with MATLAB in mind and provides compatibility for many of its available features. Example Code: x = linspace(0, 2*pi, 100);y = sin(x);plot(x, y); This code creates a graph of x vs. sin x. It shows how simple a graph can be created with a small amount of data and to create a graph of a large magnitude of data could only be a few more line, if the data had already been stored in some data structure.
6
Input Formats for Data Modules For this week, I researched into the inputs required for the various modules that will be used to analyse the data. The first thing to note is that, like MATLAB; Octave has its own code, even though it relies on Fortran or C for the body of the code. Similar to inserting PHP code into an HTML side, octave code can be simply input into the Octave section of the code and use the functions within that section. For example: octave:2> v = [ 0; 1; 2] v = 0 1 This code creates a vector called v and can be put into the body of any code, Perl or otherwise, so using Octave allows us to already support many languages. This gives us three feasible options: 1.Import all required libraries with each module, making them standalone. 2.Store all libraries in a central location on the server for access by all modules. 3.Store the Octave libraries in a central location and import the libraries for the code each individual module is written in with the module. It does seem that 2 or 3 are the best options as it would save considerable space and help to reduce errors in the code, allowing it to be, effectively, movable around the network without any issues.
7
Actual Input Formats We need to consider the actual formats with which the data is supplied and I have come up with the following options: Email. The user emails the data to our client, or whoever has the responsibility of processing the data, and it is then manually input into the system. This is not effective at all but it is the simplest option to implement, however, it does not really help the system to be open source, as someone would need to be reimbursed for the time taken to input the thousands, or even millions, of data entries to the server. File Upload. Providing a page on the website where a user can upload a common file format containing the data to the server in order for it to be processed by the modules, with no human interaction require whatsoever. This would mean that the data might need to be checked manually if the site provides no option. However, if there is a small module that checks and corrects the data so it is in the correct format, depending on the module(s) that have been selected. This seems to be a pretty sound option and the file formats need only be the most common, for example: xls (and the open office equivalent) or csv (probably the easiest to interpret). Manual Input via forms. All of the modules are, most likely, going to require some standard general information and if there is a generic form that asks for this data and then other forms will appear, depending on the analysis modules that have been chosen by the user, asking for the more specific data that is required. As we are accounting for larger data sets here then, we could simply provide an interface where the data is copied and pasted into the form to save extensive input from the users side. Finally, I believe that a mix of the last two options is the best choice for us. Filling out a form with general data and then moving onto forms that are specific to each module, allowing the user to specify a filepath to that data if it is too extensive to input.
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.