WEB APPLICATION DEVELOP- MENT UTILIZING CLOUD VIR- TUAL MACHINE
|
|
|
- Tracey Golden
- 10 years ago
- Views:
Transcription
1 WEB APPLICATION DEVELOP- MENT UTILIZING CLOUD VIR- TUAL MACHINE Olli Muukka Master s thesis May 2014 Degree Programme Information Technology
2 2 ABSTRACT Tampereen Ammattikorkeakoulu Tampere University of Applied Sciences Degree programme Information Technology OLLI MUUKKA: Web Application Development Utilizing Cloud Virtual Machine Master's thesis 43 pages, appendices 3 pages May 2014 The thesis goes through a development project where a web application was implemented to support the start-up company business operations. The main reason to implement a web application was the company needed a system where business data is centrally managed with cost-efficient, simple and easy tool. The deployed cloud service provided a platform for the web application. The alternative to the web application development was to deploy commercial customer relationship management tool, but the company had no will to invest for commercial tool. The development project first application was to implement a tool to replace the task management on Excel-sheet. The idea of the tool was to have a simple, self-guiding and easy user interface in internet browser, which would provide task management operations and the tasks would be stored in cloud data storage. In principle, the application would enable round-a-clock data availability and accessibility when utilizing the cloud service, and task manageability between simultaneous users when utilizing database. The Excelsheet task management was mostly lacking the previously mentioned qualities. The development project contained mainly system design, programming and cloud service deployment tasks. The most popular programming languages and well-known programming techniques were used for implementing user interface on a web browser. The Virtual machine was deployed from cloud with the Linux operating system and with web application software, like web server and database. The development project needed widely knowledge and skills of the system design, programming and cloud services deployment. Quite much work were spent on system design work and it helped greatly the project implementation to build the web application for the need, and to establish a web application platform for further development. The next application to be developed may be the inventory management for company equipment. Key words: development, web application, cloud, virtual machine, open-source
3 3 CONTENTS 1 INTRODUCTION BACKGROUND Main requirements Technologies Virtual machine Operating system Database Server code Web server The device User interface code Programming languages Software tools LibreOffice ProjeQtOr MySQL Workbench phpmyadmin NetBeans IDE DESIGN Project plan Implementation plan Test plan Maintenance plan Project risks Architecture Stakeholders The Onion model The list of web application stakeholders Use cases Use case diagram example Use case specification example Requirements Web page design Information security Threat analysis Security features IMPLEMENTATION TESTING AND VERIFICATION... 31
4 4 5.1 Main requirements Use cases Internet browser usability DEVELOPMENT IDEAS CONCLUSIONS REFERENCE APPENDICES Appendix 1. The Login window of the demo release Appendix 2. The Requirement shell Appendix 3. The Stakeholder definitions... 46
5 5 ABBREVIATIONS AND TERMS.NET ASP.NET Azure CSS Excel HTML HTTP IaaS InnoDB Java JSON JSP LAMP LTS MongoDB MySQL OS PaaS PC Perl PHP Python TAMK UML VPN Microsoft software framework Microsoft dynamic web application framework Microsoft cloud service Style sheet language Microsoft spreadsheet application Hypertext Markup Language Hypertext Transfer Protocol Infrastructure as a Service MySQL database engine Client-server web application programming language Java Script Object Notation Java Server Pages Apache, MySQL, PHP/Perl/Python software bundle for Linux Long Term Support Open source NoSQL database Open source database Operating system Platform as a Service Personal Computer General-purpose scripting language Server-side scripting language General-purpose programming language Tampere University of Applied Sciences Unified Modelling Language Virtual Private Network
6 6 1 INTRODUCTION The internet has greatly influenced information sharing for 25 years, for example, decision making in business and contributed businesses on their customer relationships. The history of web applications started 1995 when Netscape introduced Java script language, for example, enabling user input check on a web clients instead of web server. Further development of web programming languages has enabled, for example, applications and short message services between privates, communities and companies. Fast internet connections has enabled, for example, video meetings and remote web trainings. The database has enabled a system to store and manage information. Cost-effectiveness and reliability on sharing information is achieved using cloud technologies. An example of web application can be an appointment system, where user manages his/her appointments using the web browser as a front-end system and in a background operates the cloud server having appointment database and server software, which communicates with web browser. In the appointment system users can look free appointments, manage current ones and one appointment is reserved for one user at a time. Previous principle is a base for many web applications where web browser offers user interface to manage information on database. The document discusses the implementation of the web application for company daily task management. Web application is composed of user interface on web browser and back-end Virtual machine in cloud. The tasks can be viewed and/or modified through user interface based on web application user access rights. The access rights, tasks and other application related data are in the Virtual machine database. The server software manages the database data and communicates with the web browser when management operations are executed on web browser. Previously the tasks were managed in Excel-file, which was stored in a company server and accessed through VPN. With this way, the information sharing nor real time follow-up of the tasks were not possible. Instead of web application alternative would have been purchasing commercial software or other tailored tool, but there were no will to invest for commercial software, like Microsoft SharePoint, or will to subcontract such tool. The web application was the best option for the case also because company got an asset, which could be developed later on in-house, to similar needs.
7 7 2 BACKGROUND 2.1 Main requirements The engineering project starts when someone, like customer, wants to tackle a technical problem there is and the when the main requirements are identified. When the company did survey of how they should follow daily tasks, following main requirements were found: The task management must be easy and simple The tasks should be accessible despite of time and place Simultaneous task management shall be possible between users The three main requirements lead to the following conclusions: Easy and simple task management requires the task data is structured and clearly presented, and the presented information cannot be misinterpreted. In addition, the manipulation of the task data is logical and happens in controlled way. To enable such concept there were a possibility to implement a web application with simple looking web pages where the information is presented, for example, as a two dimensional table and executable operations are minimal and logically arranged in web pages. Task availability despite of time and place would need a system, which runs round-a-clock with no interruptions providing access to data. As the idea was web application, the internet sounded as the communication channel. What would be then the system, which provides the round-a-clock access through internet? Understanding the current technologies the conclusion was Cloud services, which can fulfill the requirement. Simultaneous task management by several users would need some control mechanism to allocate single task to the one user at a time and provide a copy of the same task for another. The latest edit of the single task data should be saved. This kind of mechanisms exists in databases and fulfills the requirement.
8 8 The main requirements were now analyzed and system parts, like web pages, cloud service and database, formed now the design skeleton of the web application. Next there were need to analyze, which technologies would be needed to implement the system parts. 2.2 Technologies Virtual machine Microsoft Azure is published early 2010 to compete in a cloud markets for example with Amazon, AT&T, HP, Google and IBM. Azure provides platform service (PaaS) and infrastructure service (IaaS) for its customers to deploy, for example, development environment or even a server cluster to the cloud. As earlier discussed in Main requirements chapter 2.1, company had the cloud services from Microsoft Azure. The Azure has mainly the three options available for web application purposes, like the Web Sites, the Cloud Services and the Virtual Machines. The Web Sites and Cloud Services options were providing easy setup for some web application purposes to not to worry about the platform maintenance. As the company wanted to have control on platform maintenance to learn more of the service model, the choice of the service was the Virtual Machine (Microsoft Azure, Virtual Machines). The plan was also to have a deployment option of the web application into some other environment if the current one would not somehow be adequate after current cloud service agreement. There were no operational differences between the services from user point-of-view. When the service type was decided, the next thing was to consider the operating system on the Virtual Machine Operating system The Virtual machine operating system choice was made out of Microsoft Server 2012 and several Linux OS distributions, like Ubuntu (Linux on Azure-Endorsed Distributions, Supported Versions). The decision to choose the Ubuntu Linux LTS operating system was based on good experiences of Ubuntu Linux as a steady and reliable operating system and on the other hand, the aim was to have the web application independent of
9 9 commercial software. In addition, the Ubuntu Linux LTS operating system support continues until autumn This will provide a solid ground for the web application system updates for coming years. Next was the place to decide, which database to select for the web application Database When the Virtual Machine service was selected as the web application platform in cloud (2.2.1), there were MySQL (MySQL, Open Source Database for Web Applications) or MongoDB (MongoDB, The Leading NoSQL Database) as the databases to select. When company had experience of MySQL database management and no experience of MongoDB, the MySQL was chosen as the database. The MySQL software was included in LAMP software bundle and instructions of installing LAMP was found from Azure documentation. The next thing was to think of what kind of tool/system can be used to manipulate the MySQL database user data Server code The task data is manipulated on database using the SQL statements. The SQL statements are executed, for instance, from specific database tool or from a code, which contains the SQL statements. The use of specific database tool with the web application would mean extra administration work with tool and user credentials, though it is not an option. The code could be located in the Virtual machine as an interface to database containing the SQL statements and the SQL statement execution would be controlled by the code. The web application would then need to implement some user interface where user manipulates the task data, based on the roles defined in a code. Applications normally works with databases in this way. So, next was to consider the programming language for the server code. The programming language for the server code should have MySQL software library to support the SQL statements executed in MySQL database. The company had a knowledge of the most popular server-side programming language called PHP (W3techs, Server Side Programming Languages) and PHPs capability on this kind of systems. Therefore, the PHP was chosen. The PHP was also included in a server software bundle called LAMP, which was installed in the Virtual machine after MySQL database was
10 selected. The next phase was to define the communication between server code and user interface code Web server The role of web server is to be a communication system between user interface code and server code and to provide access to information published on the server through the web pages. The selected application web server was Apache (Apache HTTP server), which was one of the installed software on the LAMP software bundle. The Apache HTTP server is the most popular web server software and most likely, the development of the Apache will be supported for many years ahead. The next was to define what the devices to use the web application are The device The device to use web application would need a capability to connect internet using either fixed, wireless or mobile system network technologies. The device communicates with other devices with many kind of internet protocols, like Bluetooth (Bluetooth, Wireless Technology Standard) or HTTP (HTTP, Internet Application Layer Protocol). The HTTP is an application protocol designed for data communication in internet and obvious protocol on the web application operations. The web application was considered to operate in every modern PC, tablet or mobile phone, which connects to internet and has the graphical web browser. Then, there were need a code as user interface, which would be supported by the web browser User interface code There is hundreds of different internet browsers, which can be used in internet devices. Most of the browsers are graphical and some of them are text based. The web application was planned only for graphical internet browsers to provide better readability and usability compared to text based browsers. The world largest web development site
11 11 (W3Schools, Online Web Programming Tutorials) refers to the few most popular graphical internet browsers, like Firefox, Internet Explorer, Chrome, Safari and Opera. The web application was to be built using the most common web programming techniques for each of the browsers, to enable similar operation of the web application. The web application client was planned to be as a web page user interface into the Virtual machine database. There were no need for multimedia techniques on the user interface so the basic functions of HTML language, like forms, links and buttons were enough to build the user interface. To have a nice outlook for the web page the CSS language was needed for arranging HTML components on the web page. The jquery components, which enabled usability, like having calendar date selector brought some usability to web pages. At this point, of the system analysis, the technologies were chosen and the web application main system components were defined. 2.3 Programming languages The programming languages, like PHP (PHP5, Introduction), HTML (Hypertext Markup Language, Introduction), CSS (Cascading Style Sheets, Introduction) and Java (Java, Programming Language), were selected at the same time when the web application background analysis and system components were defined in chapters and These programming languages were taken to the implementation. 2.4 Software tools The software project may need many tools to perform different tasks on project, like documenting, software development, project management and visual designs. The web application software project concentrated to utilize open source tools to have the experience of the maturity level of the tools compared to commercial tools. The following chapters introduces the tools used on this project.
12 LibreOffice The LibreOffice software bundle was used for documentation in this project and it is freely available office suite having various tools, like Writer for writing documents or Impress for drawing diagrams. The capabilities of the LibreOffice tools are very much in a same level than, for example, the Microsoft Office tools, and the LibreOffice was seen appropriate software for the purpose. The LibreOffice is supported in Microsoft Windows, Mac OS X and Linux platforms ProjeQtOr The ProjeQtOr (ProjeQtOr, Open Source Project Management Software) is freely available open source tool for project management. The ProjeQtOr has all needed features for the project management, like budget follow-up, but the main criteria for having the tool was to share the planned tasks and documentation among the project group. The sharing was achieved by installing the tool into the Virtual machine and by defining the user accounts and rights for the project group members. The ProjeQtOr is very usable project management tool, for instance, to try out ad-hoc projects MySQL Workbench MySQL Workbench (MySQL Workbench, Visual Database Management Tool) is freely available tool for managing MySQL databases. User can manage, for example, database connections, structure and content. User can also test database building by generating SQL statements from the database model phpmyadmin The phpmyadmin (phpmyadmin, MySQL Administration Over the Web) is freely available graphical web tool for managing database done with PHP. The tool is included in LAMP software bundle and the tool has, for example, a capability to get database creation
13 script as input file to build the database. All database management tasks can be done, like adding users, removing columns or language settings NetBeans IDE The NeltBeans IDE (NetBeans IDE, Integrated Development Environment) is freely available software development tool made with Java and it was taken into use for programming the web application code based on previous experiences of the tool. The tool supports many programming languages, like CSS, HTML, Java and PHP. The tool has also debugging feature, which is not included in basic source code editors like Notepad++. The NetBeans IDE is very suitable on projects, like the web application development.
14 14 3 DESIGN The design of the web application started from the project plan definition to state the resource boundaries for the project and to get an agreement of the project duties and tasks within a project group. 3.1 Project plan The project plan is one of the main documentation for project. Project plan consists at least project description, objectives, project personnel, responsibilities, resources, implementation plan, test plan, communication, risk analysis and maintenance plan. All the previously mentioned project content was in a plan, but some of the main, from authors perspective, project content is explained in following chapters Implementation plan The implementation plan contained the main tasks of the project. The definition of the main tasks came out from prioritization of feature requirements where the importance of each application feature was evaluated based on the main application requirements and background investigations. The main implementation parts were the Virtual machine setup with MySQL, PHP and Apache and the web application web pages. Several higher-level tasks were defined from these two implementation parts and tasks are listed in a following TABLE 1, as an example. Each task on list contained many sub tasks and those were prioritized like High, Medium and Low categories. The Period -definition on task list helped the designer to concentrate the tasks of each period.
15 15 TABLE 1. The task list example of the project main tasks Task title Priority Period Virtual machine and internet connections setup High 1 Project management tool installation High 1 LAMP installation High 1 MySQL database setup High 1 Apache web server setup High 1 Design database information model High 1 Web application database deployment High 1 Web application web page design High 2 Login page implementation High 2 Main user window implementation High 2 Add task window implementation High 2 Edit task window implementation High 2 Delete task feature implementation High 2 Logout feature implementation High Test plan The web application features must be tested and verified with the application requirements to find the defects of the design and implementation. The project concentrated mostly on usability requirement testing. The test plan contained the testing of Main requirements (2.1), Use cases (3.4) and Internet browsers (2.2.7). The Main requirements were tested and verified how the implemented web application responses to the initial needs, called as Main requirements. The Use case testing was functionality testing and was performed using the use case specifications. The use case specifications contained the test case report part and no other test case document was needed when the test results were updated to use case document. The internet browser testing was usability tests of how the internet browsers behaves when using the web application.
16 Maintenance plan The maintenance plan contained the task list of the web application maintenance operations. The task list stated what, when and how the maintenance shall be done. The following TABLE 2 shows an example of the maintenance task. TABLE 2. An example of maintenance task description Operation Schedule Main actions Update Linux OS Every 3 rd month, At Sunday, at Establish secured connection to the Virtual Machine as a root user 20:00 Execute full system backup Perform the OS update Test the web application works normally with Viewer/Manager user roles Project risks The project risks were written down to a risk list to remind project group what kind of things may cause problems to the project and how those problems could be mitigated or solved. The following example shows one risk specification from the list TABLE 3 as an example: TABLE 3. The example of a risk specification ID Risk Mitigation alternatives 001 The cloud service provider sends a free account termination notice and sets a 1. The new fee is accepted and no actions to be done. minimum price of 30 euros / month for all of the accounts. 2. Create, copy and install the Virtual machine image to another cloud service provider Virtual machine/own server and terminate the subscription with the current cloud service provider.
17 17 If the risk realizes the actions are taken according the plan. If there is no plan of actions it may cause some other problems of using the web application, like when the account is suddenly terminated and there is no image available of the Virtual machine to be installed into another environment. 3.2 Architecture The Architecture of the web application was modeled after main components and technologies were defined. The purpose of the architecture model was to steer the implementation according to the selected technologies. The FIGURE 1 describes the architecture model with main components of the web application and the communication between the device and Microsoft Azure through the Traffic control. The communication ports, like SSH and HTTP, were opened in Traffic control. The port opening was mandatory operation before any communication could be established. Microsoft Azure Virtual Machine The device User interface code Traffic control Operating system Web server Database Server code FIGURE 1. Architecture model of the web application 3.3 Stakeholders The stakeholders are the most important influencers for the product in question. The stakeholders has some interests towards the product, which will affect negatively or positively to the product and its lifecycle. For example, the investor is a stakeholder, which
18 18 affects positively to the product by financing the product development. On the other hand, the competitor affects negatively to the product, for example, by judging the product publicly. It is important to find all stakeholders and to define their impact to the product. When the stakeholders are found and their impact towards the product is defined, it will clear out the business segment and the opportunities of the product. To define the stakeholders of the web application there is need to describe somehow the environment where the application operates and works, what human actors and systems are related to the application. The process to describe such environment involves discussions with application owner (which is the one who orders the application), users and designers to get the idea of the product relations to its environment. The application architect may ask the following questions: Who affects the application negatively or positively? Who are the users and how they use the application? What is the physical environment where the application works/operates? What systems affects to application negatively or positively? As an example of stakeholder, we can take the technology standard and its requirements for the product. Technology standard steers the application implementation and operation during its life cycle. The Onion model is commonly used diagram to present product stakeholders. The reference of the Onion model (Onion model, The Proposed Taxonomy) explains the theory The Onion model The web application stakeholders were defined utilizing the Onion model theory. The stakeholders of the product was defined by stakeholder role in a circles around the product in a middle. The FIGURE 2 shows the web application (Task Management Tool) stakeholders as titles, like IT specialist, of things or persons in the Onion model. The titles are added into the TABLE 4 in chapter
19 19 FIGURE 2. The Onion model of the web application stakeholders The list of web application stakeholders The part of the stakeholder definition process was to form a list, TABLE 4, of the web application stakeholders matching with the Onion model stakeholder role definitions. For example, the company had a title, like Manager, which took two stakeholder roles because the Manager would take care of the tool maintenance and advising other users to use the tool. The rest of the titles were matched with the same way until all web application stakeholders were identified. If new stakeholder is found later, it is added to the list and the role is defined. The new stakeholder may bring some changes to the operations done with the tool. The tool implementation change may also affect to some other stakeholder or application feature, and so on. The process to identify stakeholders is ongoing.
20 20 TABLE 4. The example of the list of stakeholder definitions and web applications stakeholders Stakeholder role Stakeholder definition Web application stakeholder Normal operator Maintenance operator Operational support Functional beneficiary Interfacing system Role that involve giving routine commands and monitoring outputs from the product, whether these are via a human-computer interface or not. Role that involve maintaining the product, such as servicing hardware, and diagnosing and fixing faults. Role that involve advising Normal Operators of a Product about how to operate it. Role that benefit from the results or outputs created by the Product. Role responsible for neighboring systems that have electronic or other interfaces to/from the Product. User Manager Manager Association owner Computer, Internet, Web link Purchaser Role responsible for having the Product developed. Company Sponsor Negative stakeholder Political beneficiary Role responsible for initiating development of the Product, for obtaining funding for it, and for protecting the development from political pressures and funding cuts. Any role that could be harmed by the product physically, financially or in any other way that might be found justifiable by the authorities (e.g. a court of law, a Regulator), or conversely that could attempt to harm the product. Any role in public office or private business that can benefit in terms of power, influence and prestige through the success of the Product. Business owner Competitor Financial beneficiary Regulator Developer Consultant Any role that can benefit financially from the success of a Product. Any role responsible for regulating the quality, safety, cost or other aspects of the Product. Any of the many roles (requirements engineer, analyst, designer, programmer, tester, safety engineer, security engineer, electronics engineer, metallurgist, human factors engineer, project manager, etc.) involved directly in Product development. Any of the many roles (marketing expert, software expert, business analyst, management specialist, etc.) involved in supporting some aspect of Product development, characteristically from outside the development organization. Company, Client, Customer Internet communication technologies, Virtual machine with database IT specialist IT specialist
21 Use cases To define a use case one should think what kind of actions system users want to do with the system and how the system will response. The use cases specify who uses the system, what are the conditions of the system before and after use case, what happens during the use case and what are the positive and negative events after use case has realized. The use case could presented with a drawing the behaviour, writing the event or drawing and writing. The drawing and writing method was utilized on this project. The idea of using drawing is that it will open up the relations between user and system, it will clarify the role of user and system and it will also clarify new/obsolete dependencies, roles and use cases. Writing open the use case will help the system stakeholders to understand what the system is supposed to do when user wants to use the system with some way. Following use case diagram FIGURE 3 shows all the main use cases (there are also sub use cases) where the web application development is concentrating on. The FIGURE 3 was drawn using UML notations, which are explained in UML (Unified Modeling Language), but the main idea is to form a diagram where are the users, system and relations explained as accurately as possible.
22 22 FIGURE 3. The main use cases of the web application The use case diagram shows the users, use cases and boundary of the system, which defines the use cases to concentrate. The left hand side use cases are the ones the user does with the system. The rest of the use cases happens after the user has performed some use case. For example, the Replicate database use case, which replicates the data between databases, must be performed by the system when user has made modification to the database data. The following chapters and will show an example of use case diagram and description as main parts of the use case specification. The use case specification can include also any other descriptions of what happens in a use case, like dynamic sequence diagram, but the diagram and description were seen the most important to have from each system use case.
23 Use case diagram example The FIGURE 4 shows the Log into system use case and the actors of the use case. FIGURE 4. The Log into system use case diagram Use case specification example The use case specification helps to understand what happens on a system when actor uses the system is certain way. The use case specification should define at least the content defined in TABLE 5. The Test result and remarks item is applied as extra item for the project reporting purposes.
24 24 TABLE 5. The Log into system use case description Use case title Log into system ID 001 Pre-conditions User has entered the web application web site User has his/hers username and password available (Viewer/Manager) User is entering his/hers username and password Description User enters his/hers username and password and press Login button or Enter User is successfully logged into system Post-conditions User is logged into system Exceptions User username and/or password is wrong and login fails. The error message ** is shown User is not logged into system and login fails. The error message ** is shown ** Wrong Username or Password! Try again. Test remarks and results This part of the use case specification must be used for writing test remarks and results. Result: Test passed/test not passed Date: dd/mm/yyyy Version: x.x 3.5 Requirements The requirements starts to realize when the idea of the application or product is figured out. The requirement specification process must be iterative to gain usable requirement, for example, for use case specification process. The iteration means challenging the requirement through stakeholder discussions. The web application Main requirements, in chapter 2.1, were challenged and discussed with the stakeholders few times to get such requirements, which would steer further the system analysis, the web application technology selections and the design process.
25 25 The Volere (Volere Requirements Specification Template, Requirements Shell) Requirement shell (Appendix 2.) was used as a basis for requirement writing on the project. The Requirement shell collects all relevant information into one requirement specification. The web application requirements were saved into ProjeQrOr tool to match the requirement to the project tasks and to manage them in one place. TABLE 6. The requirement specification example based on Volere Requirement shell Requirement id 001 Requirement type Functional Use case Login into system Description User must login into system using valid username and password Rationale The username and password are the login data used for login into system. The system administrator provides the valid username and password for the user. Originator System architect Fit criterion User is able to login into system after valid username and password is given Customer satisfaction 5 Customer dissatisfaction 5 Conflicts Not identified Priority High Supporting material Use case specification History Created on Web page design Usability problems with web pages and applications leads to unhappy users and then applications are most likely abandoned. Therefore, web page design is becoming more important when different kind of internet devices, like tablets and mobile phones having internet browsers are used. Web page designs can be done either on paper or digitally with the specific design software as wire frame designs. The web page wire frame designs are guidelines to web page designers who then designs the web page with technology and usability in mind. The web page designer shall also follow the web page functionality and
26 26 outlook requirements to build the web page as a whole. The FIGURE 5 is an example of the wire frame sketching with LibreOffice Impress showing the information needed for Login window web page design work. FIGURE 5. The wire frame sketch of Login window The Login window design may change on implementation, but the main idea of the page functions should be there according the design, which is based on stakeholder requirements. The Appendix 1 shows the implementation result of the Login window at demo release. 3.7 Information security The information security has always been essential part of any business or government activities and it is easily forgot how much, for example, leaked information impacts on business in general. A company may lose its business advantage for competitors just by letting its systems open to internet, because of bad security design or lack of user control, on where hostile parties can spy or steal business critical information. To protect the web application from information thefts, some security designs were done to find out the web application weaknesses. A good starting point on defining the information security mechanisms for the web application is the architecture description. Every system part has its own defects and shortages, which may cause problems on securing information on system
27 27 and these must be acknowledged on web application implementation. The communication is another subject to investigate between system parts, like the user interface code and the web server. Performing at least some kind of threat analysis of the system is always a minimum to be done rather than no threat analysis. The threat analysis of the system parts and the communication were done to define the security functionalities Threat analysis The threat analysis may feel a bit special and may sound tedious task to do among the whole implementation, but the fact is if the analysis is not done, in any level, the information security shortages are harder fix when they realize unexpectedly. To analyse threats there is different kind methods, like threat tree or attack tree, but maybe the fastest and easiest way is to look at the use cases and think how one could misuse the system, as a Misuse case, and Wikipedia definition (Misuse case, Overview) says A function that the system should not allow. To define the misuse cases of the web application we used the use case diagram and listed all the use cases and misuse cases into a table with descriptions. As an example of misuse case definitions, the Login into system and Set HTTP address use cases were opened with the misuse cases with the use case diagram, FIGURE 6, and then with the use case- misuse case table, TABLE 7. FIGURE 6. The example of Misuser and use cases
28 28 The Set HTTP address is a use case, which is taken care of by the system and user is not setting any HTTP address. Misuser tries to set the HTTP address when she wants to get a control of the web application. The following TABLE 7 explains the FIGURE 6 from Misuser point-of-view. TABLE 7. A table to describe use cases and misuse cases Use case Log into system Set HTTP address Misuse case : A function that the system should not allow Login with invalid username/password pair Inject code into http address field to authorise any user login Measures Ensure the server code input validation accepts only registered username/password pair. Ensure the web application web pages do not allow any code injection to login into system. The quality of misuse case definitions depends the use case definitions, so the use cases should be defined carefully in first place. When misuse cases are defined it s a place to figure out the security features, according the measures stated on use case misuse case table, which excludes the misuse cases. The security feature analysis work can be extended further by adopting methods defined by OWASP (OWASP, Application Security Verification Standard Project) Security features The security features were designed using the threat analysis documentation of the misuse cases. The TABLE 7 Measures were used as a basis for the TABLE 8 example of security measures and implementation strategies.
29 29 TABLE 8. The example of security measures and implementation strategies Measures Ensure the server code input validation accepts only registered username/password pair. The login web page http address must not allow any code injection to login into system. Implementation strategy Create a table to database where all users and user roles are listed. The username/password pair in table is only accepted by the authentication and authorization system. Define the roles to specific resources. AND/OR read more information to protect application from SQL injection Perform the measures to prevent Cross Site scripting, XSS In practise the output of threat analysis and security feature implementation strategy definitions is added to the same documentation to avoid redundant documentation of security measures and improving use case iteration process.
30 30 4 IMPLEMENTATION The web application implementation started with setting up the Microsoft Azure Virtual machine environment, which was the backend of the web application. The Virtual machine deployment started by entering Microsoft user credentials on Azure web site and then the cloud service portal was opened. In a portal, user was able to deploy and manage available services, like the Virtual machine with specific operating system. The Virtual machine deployment was followed by the instructions found from Microsoft Azure web site. Then following the instructions of LAMP software bundle installation brought the rest of the needed software for web application. The deployment took one day and it was relatively easy task using the Azure documentation. Implementation continued with web page designs. The web pages were designed as wire frame drawings where the application windows were drawn according to the usability requirements of the web application browser views. The next phase was to implement the browser views with HTML and CSS according the drawings. The HTML code contained basically tables and buttons. The table view showed the data queried from the database tables with specific columns and rows. The CSS code was written to a separate file to finalize the outlook of the browser view. The functionalities on web pages were mostly the SQL queries from database implemented with PHP. The web application programming part was done with NetBeans IDE where the PHP web application project was established. The project contained all the source codes, like HTML, CSS and PHP. The connection to the Virtual machine was set up in a Netbeans IDE and every time the project was opened the connection was established to the Virtual machine. The web browser was set to show how the code behaves after code was saved on the Virtual machine. The programming language instructions and examples were searched mostly from the internet. One excellent web site is called stackoverflow.com (stackoverflow.com, Questions and Answers for Programmers), which has many discussions of programming solutions and the found information helped and speeded up the web application development a lot. The internet was the main information source also for the rest of the implementation work.
31 31 5 TESTING AND VERIFICATION 5.1 Main requirements The Main requirements (2.1) were the initial needs from stakeholders and therefore the implemented web application should be measured against the Main requirements to see whether the web application responded to the initial needs or not. If the testing of the Main requirements shows the web application has not responded to the initial needs, the Main requirements were not understood and the web application design must be changed. The TABLE 9 shows the Main requirements and the responsiveness of Excel- file and Web application systems for the Main requirements. The responsiveness of the systems was based on subjective evaluations done by stakeholders. The pre-condition for evaluation is the user operates with systems with internet connection. The results of the Main requirements tests on TABLE 9 shows the task data accessibility and divisibility is better with the web application compared to the Excel file, based on the stakeholders experiences. The reason for better task data accessibility by web application was gained by using HTTP protocol instead of VPN, round-a-clock cloud service and centralized database. The better task data divisibility by web application was gained with the centralized database and the database capability to allow multiple user data modifications at the same time.
32 32 TABLE 9. The Main requirements testing with Excel file and Web application systems Main requirement Excel file Web application The task management must be easy and simple Values: Easy and simple = 2 Easy/Simple = 1 Not easy and nor simple = 0 = 2 The task data is easy and simple to manage Excel file sheet columns and rows. Values: Easy and simple = 2 Easy/Simple = 1 Not easy and nor simple = 0 = 2 The task data is easy and simple to manage on internet browser forms. The tasks should be accessible despite of time and place Values: Accessible = 2 Relatively accessible = 1 Not accessible = 0 = 1 Tasks are accessible as long as company VPN server is alive Values: Accessible = 2 Relatively accessible = 1 Not accessible = 0 = 2 Tasks are accessible 24/7 on cloud with internet browser. and internet device has VPN capability. Simultaneous task management shall be possible between users Values: Possible = 1 Not possible = 0 = 0 Microsoft SharePoint is not installed in company server. Values: Possible = 1 Not possible = 0 = 1 MySQL InnoDB database engine takes care of simultaneous task management. 5.2 Use cases The web application functional testing was done based on the use case specifications and all the use cases were tested according the steps listed in use case descriptions. For example the use case of Log into system had following description from where the test environment was set having open the web application website and test credentials. After inputting correct and fault credentials the results were written into Test remarks and result in Log into system use case specification, shown on TABLE 10.
33 33 TABLE 10. The Log into system use case specification with test results Use case title Log into system ID 001 Pre-conditions User has entered the web application web site User has his/her username and password available User is entering his/her username and password Description User enters his/hers username and password and press Login button or Enter User is successfully logged into system Post-conditions User is logged into system Exceptions User username and/or password is wrong and login fails. The error message ** is shown User is not logged into system and login fails. The error message ** is shown ** Wrong Username or Password! Try again. Test remarks and result The web site of the application worked ok. The available username and password were admin/admin and user/user. The testing was done with both username/password pair and with different combinations. The right username/password combination let user log into system when pressing the Login button/enter on keyboard. The wrong username/password combination showed an error message: Wrong Username or Password! Try again. Result: Test passed Date: 12/12/2013 Version: 0.2 The advantages of testing the use case with the specification is, the testing will realize the possible logic defects and implementation shortages, which can be, for example, a missing operation on input data validation code. 5.3 Internet browser usability As the aim was to build a web application, which can be used in various internet devices with the most popular graphical internet browsers (2.2.7), the user interface code behaviour was validated the same way in each browser. The behaviour of the internet browsers were observed with device-browser combinations listed in TABLE 11. The remarks of
34 the usability differences were written compared to Linux Mint 14, Mozilla Firefox 29 as reference system. 34 TABLE 11. Internet browser usability tests with web application Device and OS Internet browser Remarks Development PC, Linux Mint Mozilla Firefox 29 Reference system 14 Jolla smart phone, Sailfish 1.0 Sailfish browser Very little difference Samsung NP550P laptop, Windows 7 Internet Explorer 11 Slight differences on object and page outlook Nokia Lumia 800 smart phone, Windows 7.8 Internet Explorer Mobile The main task window layout was bit different, but otherwise the same behaviour than Internet Explorer 11 Jolla smart phone, Sailfish 1.0 Opera Mobile Classic 12.1 Very little difference, date colours in main task window were blue instead of black Acer 5755G laptop, Windows 7 Google Chrome 34.0 Slight differences on object and page outlook. Edit window Additional info field too narrow. ipad, ios 5.1 Safari Slight differences on object and page outlook. Edit window Additional info field too narrow. Text font size should be double. The internet browser usability testing showed there is usability differences between device-browser combinations. For example, some of the input fields were too narrow, font size was not readable or the page scaling was not appropriate. The differences comes from the missing responsive web design (RWD, Responsive Web Design) methods, which improves usability between various device-browser combinations.
35 35 6 DEVELOPMENT IDEAS The plan was to design the web application to work on different web browsers, like smart phone browsers. However, usability testing revealed problems on web page scaling, input field scaling and font readability. Some research for the problem was made and the reason was missing of responsive design methods (RWD, Responsive Web Design). The methods provides optimal viewing experience, where user would not need to do much resize, pan and scroll on web page to browse the needed information. The inventory management could be the next application to be developed for managing the company photographing equipment. The equipment users would need to know, which equipment are available and which should be requested to be purchased. The application functionalities would be very similar compared to task management operations, like viewing, adding and deleting equipment, and the implementation would be pretty much reusing the task management application code. The web application would need the event messaging system, where user could notify others after data updates. This could be an notification, which would require an server deployment in the Virtual machine or integration to company system provided by service provider. The server would also benefit the project management tool where the is used for change notifications. The business data is many times valuable for business and therefore the data should be carefully managed. Part of the data management is the data backups, which are normally taken from the database, on some frequency. As the company business data is located on the Virtual machine database, the backups should be implemented on there. The backup implementation could be a hot backup where database is running and the data is copied as a snapshot, like the InnoDB Hot Backup (InnoDB Hot Backup) does. The company server or cloud storage service could be the place for a database snapshot. The copying shall be automated and run over SSH connection between the Virtual machine and the company server. At least, some kind of automated backup procedure should be implemented, than no backups.
36 36 The web application deployment may be needed to be switched to Web Sites or Azure Cloud services (Azure Web Sites, Cloud Services and Virtual Machines comparison) if company business or resources changes. The change for the business may be caused by need to integrate the web application into, for example, Azure Web Sites, where the company has planned to maintain all of the company web applications. The switch to other cloud service type must be planned carefully, because it affects, at first, to the controllability and manageability of the web application. Secondly, the web application code will need some changes. The service switch should be documented beforehand in concept level in company s risk planning, to be ready to response quickly for business changes. If the web application is mostly used with smart phones the web application could be implemented as native application to increase usability from web browser use. The JSON (JavaScript Object Notation) messaging feature was deployed on the web application and JSON messaging was utilised on Windows 7 phone task browser. The web application user login authentication mechanism could be replaced by using single-sign-on systems, like CAS (Central Authentication Service, Single-Sign-On Protocol) or Shibboleth (Shibboleth, Single-Sign-On Software Package). When company grows and various tools are used for managing business, the single-sing-on deployment would become more obvious. The single-sign-on system should be selected based on the company s future IT strategy, where identity management is one of the key development subjects.
37 37 7 CONCLUSIONS When the idea of web application was born to support company business operations, there were not much understanding of the whole, what the web application would eventually mean for implementation. First thoughts were there is web browser, some software to be written and some physical server being the core system. It was a starting point the whole thing, but just start. Some studies were made about the web applications, what those really are and what those contain, and then it became clear there is quite much to be done after when you could call a system as a web application. There was a place to make some assumptions, what the company would really need from the web application. The assumptions realized soon to be the Main requirements (2.1) of the web application. The Main requirements were found very useful on the way to the planning, design and testing phase, because those kept the focus on the real need and not anything else, every time the Main requirements were reviewed. The reviews of the Main requirements were made during the project plan definition, when system components were defined during the design, and finally when verifying the Main requirements on testing. When the technologies for the web applications were to be defined, the information reference of Web applications (Web Application, History) were explaining what the technologies would most likely be. The web applications has been there for two decades, and there were many alternatives available to build the web application. The first question was where the application would run? There were choice to build the application into company s own physical server, but there were no experience of web hosting and the alternative was abandoned. Better choice for server would be somewhere else, where the web application hosting is handled properly. The company had an account on cloud service provider and the cloud offered the service called Virtual machine (2.2.1). The Virtual machine appeared to be a perfect choice, because it can be used for testing and running web applications. The Virtual machine provided also full control of the deployment, which enabled the possibility to learn how to manage the Virtual machine. The Virtual machine deployment with the operating system was very easy, because of the good documentation. The deployment took only some minutes.
38 38 As the operating system selection was Linux for backend Virtual machine, the software bundle called LAMP (LAMP, Overview) was widely included as web application software for Linux. The LAMP affected straightly the choices of other technologies, as Apache, MySQL and PHP, so the basis of web application was ready. The frontend, the user interface of the web application, technologies were obvious starting with HTML and following with CSS (Web Application, Programming language). The jquery functionalities were also considered part of the implementation, to improve usability (jquery, Simplifying HTML scripting). No other frontend technologies were needed, as the previously mentioned would do the thing. As the internet has a lot of information of all the selected technologies, the learning and the deployment of the technologies were easy, and the web application started to realize bit-by-bit. The web application project was not possible to carry out without software tools. What the tools would be a where to get them? The open source software was one of the interests in a beginning of the project to keep the development costs low. All the tool selections were after the same low-cost principle and finally the found tools were fulfilling the needs remarkably well (2.4). All the software were freely available on internet. All the project tasks from design to implementation could be done with open source tools. When seeing commercial tools and comparing them to the open source offering, it is a bit wonder that commercial ones are still selling if the argument is only on software features. The stakeholder definitions were based on the Onion model theory (Onion model, The Proposed Taxonomy). The stakeholder onion model was easy to make as the stakeholder definitions were well defined in theory material. Good theory material saved some time on design. Finding the stakeholders, needed the understanding what the application was about, as how it is going to be used. Eventually, the definitions process cleared out the role of the application in its operational environment. The stakeholder definition process realized requirements and will realize new requirements in future when new stakeholders are identified by the project maintenance group. The stakeholder definition process helped describing the web application use cases. The stakeholder definitions, on this project, would need some more work to get them complete. The use case specification process was to think the behaviour of the use case, what kind of events occur when the use case is starting to realize. The question to define use case was: What user/system does with the system to get what user/system needs? Then the use
39 39 case definitions were written with the pre- and post-conditions, and exceptions, and that was pretty much what was needed in a specification (3.4.2). Some of the requirements were found during the use case definition process and that was very useful from the design point-of-view. The project utilised the use case specifications on testing (5.2) the web application functionalities, adding the test results into specifications, and this way reducing the need for specific test report document. Dozens of requirements were written according the Volere requirement template (3.5) to obtain such requirements, which are easily understood and can traced to its origin and supporting documentation. To write requirement specification, one must think thoroughly the description, rationale and fit criterion of the requirement, which are the most essential for reader to understand what the requirement is about. The rest of the requirement specification information, like document references, supports the purpose of the requirement. The ProjeQtOr project management tool (2.4.2) was used to save the requirements with specified information, and the place for requirements along with the rest of the documentation, helped a lot the requirement management. The testing should be performed for any system, because the testing will reveal the rest of the shortages of the system design (System Verification, Purpose and Principle of the Approach). The web application testing with the Main requirements were new experience. As the Main requirements were about usability the testing method was invented to be subjective evaluation of the Excel file use compared to Web application use. The evaluation was seen rational after stakeholders tested the Main requirements. The tests (5.1) showed the web application has advantages compared to Excel file system and the conclusion was the web application design has succeed. The feature testing was done utilizing the use case specifications (3.4.2) rather than writing a specific feature testing document. The feature testing retuned some use cases in logic level and realized some new requirements for the web application. The web application security is one big concern, for example, for business, because web applications are attacked by multiple ways (Web Application Security Statistics, Summary). Therefore, it was reasonable to perform the Threat analysis (3.7.1) for the web application, to check which vulnerabilities the web application may have. The Threat analysis was done by defining Misuse cases (Misuse case, Overview) and, for example,
40 40 the Set HTTP address (3.7.1, TABLE 7) misuse case definition realized the web site address manipulation possibility. The Threat analysis helped to enhance the web application security, as the Security features (3.7.2) were developed based on the findings of the Threat analysis. One of the key thing found on design process is to have enough iteration for designs, like in Requirements (3.5) definition process stated. It s better to have more iteration than less to get the development work, in the end, closer the required system. However, common sense must be used when iterating the designs and someone in organisation must decide when designs are enough mature for the implementation. The iteration shall be done as a continuous process within the project group when some design is to be shared or iterated (SEBok, System Life Cycle Process Models). In addition, centralized information sharing enables quick reacting for design changes and speeds up the move towards the implementation phase. The web application development project gave wide experience of the related technologies, experience of how this kind of project should be done and what the project should contain. Some of the project areas (DEVELOPMENT IDEAS) would need some more work, but at this stage, the task management application provides the required functionalities (2.1) and supports the business. The project was excellent learning journey into the web applications and strongly recommended, by the document author, as development project for anyone who are interested of utilizing web applications.
41 41 REFERENCE Apache HTTP server. Read Azure, Pricing. Read Azure Web Sites, Cloud Services and Virtual Machines comparison. Read Bluetooth, Wireless Technology Standard. Read Central Authentication Service, Single-Sign-On Protocol. Read Cascading Style Sheets, Introduction. Read Linux on Azure-Endorsed Distributions, Supported Versions. Read Hypertext Markup Language, Introduction. Read HTTP, Internet Application Layer Protocol. Read How to Set Up Endpoints to a Virtual Machine. Read Java, Programming Language. Read JavaScript Object Notation, Open Standard for Data Object Transmitting. Read jquery, Simplifying HTML scripting. Read InnoDB Hot Backup. Read LAMP, Overview. Read Linux Endorsed Distributions Supported Versions. Read
42 42 Microsoft Azure, Virtual Machines. Read Misuse case, Overview. Read MongoDB, The Leading NoSQL Database. Read MySQL, Open Source Database for Web Applications. Read MySQL Workbench, Visual Database Management Tool. Read NetBeans IDE, Integrated Development Environment. Read Onion model, The Proposed Taxonomy. Read OWASP, Application Security Verification Standard Project. Read PHP5, Introduction. Read phpmyadmin, MySQL Administration Over the Web. Read ProjeQtOr, Open Source Project Management Software. Read RWD, Responsive Web Design. Read stackoverflow.com, Questions and Answers for Programmers. Read SEBok, System Life Cycle Process Models: Iterative, Overview of Iterative-Development Process Models. Read Shibboleth, Single-Sign-On Software Package. Read System Verification, Purpose and Principle of the Approach. Read Unified Modeling Language. Read
43 43 Virtual Machines Linux Install LAMP stack. Read Volere Requirements Specification Template, Requirements Shell. Read W3Schools, Online Web Programming Tutorials. Read W3techs, Server Side Programming Languages. Read Web Application, History. Read Web Application, Programming language. Read Web Application Security Statistics, Summary. Read
44 44 APPENDICES Appendix 1. The Login window of the demo release The Login window FIGURE of the demo release is different from the initial design, but has the main features, like username and password fields and Login button for user login into system. The design change for Login window is decided after stakeholder discussions on web application deployment approval occasion. FIGURE. The Login window of the demo release
45 45 Appendix 2. The Requirement shell The following TABLE explains the information to be presented on the requirement shell. The official requirement shell is found from Volere Requirement Specification Template (Volere Requirements Specification Template, Requirements Shell). TABLE. Requirement shell content specification Requirement id Requirement type Use case Description Rationale Originator Fit criterion Customer satisfaction Customer dissatisfaction Priority Conflicts Supporting material History Unique id The type of the requirement Id of events / use cases, which needs this requirement One sentence statement of the requirement intention A justification of the requirement The stakeholder who raised the requirement A measurement of the requirement such that it is possible to test is the solution matches the original requirement Degree of stakeholder happiness if this requirement is successfully implemented. 1=uninterested, 5=extremely happy Measure of stakeholder unhappiness if this requirement is not part of the final product. 1=hardly matter, 5=extremely displeased The relative importance Other requirements that cannot be implemented this on is. Pointer to documents to illustrate and explain this requirement Creation, changes
46 46 Appendix 3. The Stakeholder definitions The TABLE explains the definitions of the Onion model stakeholder roles (Onion model, The Proposed Taxonomy). TABLE. The Onion model stakeholder role definitions Stakeholder role Definition Normal operator Role that involve giving routine commands and monitoring outputs from the product, whether these are via a humancomputer interface or not. Maintenance operator Role that involve maintaining the product, such as servicing hardware, and diagnosing and fixing faults. Operational support Role that involve advising Normal Operators of a Product about how to operate it. Functional beneficiary Role that benefit from the results or outputs created by the Product. Interfacing system Role responsible for neighboring systems that have electronic or other interfaces to/from the Product. Purchaser Role responsible for having the Product developed. Sponsor Role responsible for initiating development of the Product, for obtaining funding for it, and for protecting the development from political pressures and funding cuts. Negative stakeholder Any role that could be harmed by the product physically, financially or in any other way that might be found justifiable by the authorities (e.g. a court of law, a Regulator), or conversely that could attempt to harm the product. Political beneficiary Any role in public office or private business that can benefit in terms of power, influence and prestige through the success of the Product. Financial beneficiary Any role that can benefit financially from the success of a Product. Regulator Any role responsible for regulating the quality, safety, cost or other aspects of the Product. Developer Any of the many roles (requirements engineer, analyst, designer, programmer, tester, safety engineer, security engineer, electronics engineer, metallurgist, human factors engineer, project manager, etc.) involved directly in Product development. Consultant Any of the many roles (marketing expert, software expert, business analyst, management specialist, etc.) involved in supporting some aspect of Product development, characteristically from outside the development organization.
PROJECT MANAGEMENT SYSTEM
Requirement Analysis Document v.2 14.12.2009 CENG-401 SOFTWARE ENGINEER PROJECT MANAGEMENT SYSTEM (Project Manager) Ahmet Edip SEÇKİN 07010555 (Developer) Erhan ŞEN 07010507 (Developer) Semih Serdar CENGİZOĞLU
Software Requirements Specification For Real Estate Web Site
Software Requirements Specification For Real Estate Web Site Brent Cross 7 February 2011 Page 1 Table of Contents 1. Introduction...3 1.1. Purpose...3 1.2. Scope...3 1.3. Definitions, Acronyms, and Abbreviations...3
Syllabus INFO-GB-3322. Design and Development of Web and Mobile Applications (Especially for Start Ups)
Syllabus INFO-GB-3322 Design and Development of Web and Mobile Applications (Especially for Start Ups) Spring 2015 Stern School of Business Norman White, KMEC 8-88 Email: [email protected] Phone: 212-998
CSCI110 Exercise 4: Database - MySQL
CSCI110 Exercise 4: Database - MySQL The exercise This exercise is to be completed in the laboratory and your completed work is to be shown to the laboratory tutor. The work should be done in week-8 but
Web 2.0 Technology Overview. Lecture 8 GSL Peru 2014
Web 2.0 Technology Overview Lecture 8 GSL Peru 2014 Overview What is Web 2.0? Sites use technologies beyond static pages of earlier websites. Users interact and collaborate with one another Rich user experience
Assignment # 1 (Cloud Computing Security)
Assignment # 1 (Cloud Computing Security) Group Members: Abdullah Abid Zeeshan Qaiser M. Umar Hayat Table of Contents Windows Azure Introduction... 4 Windows Azure Services... 4 1. Compute... 4 a) Virtual
Syllabus INFO-UB-3322. Design and Development of Web and Mobile Applications (Especially for Start Ups)
Syllabus INFO-UB-3322 Design and Development of Web and Mobile Applications (Especially for Start Ups) Fall 2014 Stern School of Business Norman White, KMEC 8-88 Email: [email protected] Phone: 212-998
Seamless Web Data Entry for SAS Applications D.J. Penix, Pinnacle Solutions, Indianapolis, IN
Seamless Web Data Entry for SAS Applications D.J. Penix, Pinnacle Solutions, Indianapolis, IN ABSTRACT For organizations that need to implement a robust data entry solution, options are somewhat limited
Lesson Overview. Getting Started. The Internet WWW
Lesson Overview Getting Started Learning Web Design: Chapter 1 and Chapter 2 What is the Internet? History of the Internet Anatomy of a Web Page What is the Web Made Of? Careers in Web Development Web-Related
Open Source Technologies on Microsoft Azure
Open Source Technologies on Microsoft Azure A Survey @DChappellAssoc Copyright 2014 Chappell & Associates The Main Idea i Open source technologies are a fundamental part of Microsoft Azure The Big Questions
Cloud Web-Based Operating System (Cloud Web Os)
Cloud Web-Based Operating System (Cloud Web Os) Hesham Abusaimeh Department of Computer Science, Faculty of Information Technology, Applied Science University, Amman, 11931 Jordan. ABSTRACT The cloud computing
Criteria for web application security check. Version 2015.1
Criteria for web application security check Version 2015.1 i Content Introduction... iii ISC- P- 001 ISC- P- 001.1 ISC- P- 001.2 ISC- P- 001.3 ISC- P- 001.4 ISC- P- 001.5 ISC- P- 001.6 ISC- P- 001.7 ISC-
Intranet Website Solution Based on Microsoft SharePoint Server Foundation 2010
December 14, 2012 Authors: Wilmer Entena 128809 Supervisor: Henrik Kronborg Pedersen VIA University College, Horsens Denmark ICT Engineering Department Table of Contents List of Figures and Tables... 3
International Journal of Engineering Technology, Management and Applied Sciences. www.ijetmas.com November 2014, Volume 2 Issue 6, ISSN 2349-4476
ERP SYSYTEM Nitika Jain 1 Niriksha 2 1 Student, RKGITW 2 Student, RKGITW Uttar Pradesh Tech. University Uttar Pradesh Tech. University Ghaziabad, U.P., India Ghaziabad, U.P., India ABSTRACT Student ERP
Virtual Machine daloradius Administrator Guide Version 0.9-9
Virtual Machine daloradius Administrator Guide Version 0.9-9 May 2011 Liran Tal of Enginx Contact Email: daloradius Website: Enginx website: [email protected] http://www.daloradius.com http://www.enginx.com
Network Licensing. White Paper 0-15Apr014ks(WP02_Network) Network Licensing with the CRYPTO-BOX. White Paper
WP2 Subject: with the CRYPTO-BOX Version: Smarx OS PPK 5.90 and higher 0-15Apr014ks(WP02_Network).odt Last Update: 28 April 2014 Target Operating Systems: Windows 8/7/Vista (32 & 64 bit), XP, Linux, OS
TIMETABLE ADMINISTRATOR S MANUAL
2015 TIMETABLE ADMINISTRATOR S MANUAL Software Version 5.0 BY GEOFFPARTRIDGE.NET TABLE OF CONTENTS TOPIC PAGE 1) INTRODUCTION 1 2) TIMETABLE SPECIFICATIONS 1 3) SOFTWARE REQUIRED 1 a. Intranet Server (XAMPP
Document management and exchange system supporting education process
Document management and exchange system supporting education process Emil Egredzija, Bozidar Kovacic Information system development department, Information Technology Institute City of Rijeka Korzo 16,
GEM Network Advantages and Disadvantages for Stand-Alone PC
Possible Configurations Turns your Contacts into a Business Network focussed on you GEM can be configured to run in many different ways. From simple stand-alone PC s or Mac s, through Client Server on
High Level Design Distributed Network Traffic Controller
High Level Design Distributed Network Traffic Controller Revision Number: 1.0 Last date of revision: 2/2/05 22c:198 Johnson, Chadwick Hugh Change Record Revision Date Author Changes 1 Contents 1. Introduction
Setting Up a Development Server
2 Setting Up a Development Server If you wish to develop Internet applications but don t have your own development server, you will have to upload every modification you make to a server somewhere else
Power Tools for Pivotal Tracker
Power Tools for Pivotal Tracker Pivotal Labs Dezmon Fernandez Victoria Kay Eric Dattore June 16th, 2015 Power Tools for Pivotal Tracker 1 Client Description Pivotal Labs is an agile software development
A Monitored Student Testing Application Using Cloud Computing
A Monitored Student Testing Application Using Cloud Computing R. Mullapudi and G. Hsieh Department of Computer Science, Norfolk State University, Norfolk, Virginia, USA [email protected], [email protected]
Alfresco Enterprise on Azure: Reference Architecture. September 2014
Alfresco Enterprise on Azure: Reference Architecture Page 1 of 14 Abstract Microsoft Azure provides a set of services for deploying critical enterprise workloads on its highly reliable cloud platform.
Computer Science Course Descriptions Page 1
CS 101 Intro to Computer Science An introduction to computer science concepts and the role of computers in society. Topics include the history of computing, computer hardware, operating systems, the Internet,
HOSPITAL MANAGEMENT SYSTEM
HOSPITAL MANAGEMENT SYSTEM PURPOSE The basic design of healthcare management system on a web application is that the application sits on a web server, and all users will access it via web browser over
SOFTWARE TESTING TRAINING COURSES CONTENTS
SOFTWARE TESTING TRAINING COURSES CONTENTS 1 Unit I Description Objectves Duration Contents Software Testing Fundamentals and Best Practices This training course will give basic understanding on software
inforouter V8.0 Server & Client Requirements
inforouter V8.0 Server & Client Requirements Please review this document thoroughly before proceeding with the installation of inforouter Version 8. This document describes the minimum and recommended
DocDokuPLM Innovative PLM solution
PLM DocDokuPLM Innovative PLM solution DocDokuPLM: a business solution Manage the entire lifecycle of your products from ideas to market and setup your information backbone. DocDokuPLM highlights Anywhere
Release 1. ICAPRG604A Create cloud computing services
Release 1 ICAPRG604A Create cloud computing services ICAPRG604A Create cloud computing services Modification History Release Release 1 Comments This version first released with ICA11 Information and Communications
Course Descriptions. preparation.
Course Descriptions CS 101 Intro to Computer Science An introduction to computer science concepts and the role of computers in society. Topics include the history of computing, computer hardware, operating
<Company Name> ugather Event Management System Software Requirements Specification. Version 1.0
ugather Event Management System Version 1.0 Revision History Date Version Description Author 18/Feb/09 1.0 Initial creation of SRS document Confidential Page 2 Table of Contents 1. Introduction
Topics in Website Testing. [Reading assignment: Chapter 14, pp. 211-227]
Topics in Website Testing [Reading assignment: Chapter 14, pp. 211-227] How to test a website Easiest way to start is by treating the web site as a black box. Look at a sample website such as www.apple.com
Building native mobile apps for Digital Factory
DIGITAL FACTORY 7.0 Building native mobile apps for Digital Factory Rooted in Open Source CMS, Jahia s Digital Industrialization paradigm is about streamlining Enterprise digital projects across channels
Basic Unix/Linux 1. Software Testing Interview Prep
Basic Unix/Linux 1 Programming Fundamentals and Concepts 2 1. What is the difference between web application and client server application? Client server application is designed typically to work in a
Web Development. How the Web Works 3/3/2015. Clients / Server
Web Development WWW part of the Internet (others: Email, FTP, Telnet) Loaded to a Server Viewed in a Browser (Client) Clients / Server Client: Request & Render Content Browsers, mobile devices, screen
The Top Web Application Attacks: Are you vulnerable?
QM07 The Top Web Application Attacks: Are you vulnerable? John Burroughs, CISSP Sr Security Architect, Watchfire Solutions [email protected] Agenda Current State of Web Application Security Understanding
Oracle Solaris Remote Lab User Guide for Release 1.01
Oracle Solaris Remote Lab User Guide for Release 1.01 Table of Contents 1. INTRODUCTION... 1 PURPOSE OF THE OSRL... 1 GAINING ACCESS TO THE OSRL... 2 Request access to the Oracle Solaris Remote Lab...
Lucy Zhang UI Developer [email protected]/[email protected] Contact: 646-896-9088
Lucy Zhang UI Developer [email protected]/[email protected] Contact: 646-896-9088 SUMMARY Over 7 years of extensive experience in the field of front-end Web Development including Client/Server
Software Requirements Specification
CSL740 Software Engineering Course, IIT Delhi Software Requirements Specification Submitted By Abhishek Srivastava (2011EEY7511) Anil Kumar (2009CS10180) Jagjeet Singh Dhaliwal (2008CS50212) Ierum Shanaya
4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development
4 Understanding Web Applications IN THIS CHAPTER 4.1 Understand Web page development 4.2 Understand Microsoft ASP.NET Web application development 4.3 Understand Web hosting 4.4 Understand Web services
FPT UNIVERSITY. Capstone Project
MINISTRY OF EDUCATION AND TRAINING FPT UNIVERSITY Capstone Project Online Event Organizing Company Management System Group Group Members Đoàn Minh Thiện 60130 Nguyễn Thanh Thống 60561 Mai Hoàng Trí Anh
IT3504: Web Development Techniques (Optional)
INTRODUCTION : Web Development Techniques (Optional) This is one of the three optional courses designed for Semester 3 of the Bachelor of Information Technology Degree program. This course on web development
Web-Based Data Backup Solutions
"IMAGINE LOSING ALL YOUR IMPORTANT FILES, IS NOT OF WHAT FILES YOU LOSS BUT THE LOSS IN TIME, MONEY AND EFFORT YOU ARE INVESTED IN" The fact Based on statistics gathered from various sources: 1. 6% of
Secure Web Access Solution
Secure Web Access Solution I. CONTENTS II. INTRODUCTION... 2 OVERVIEW... 2 COPYRIGHTS AND TRADEMARKS... 2 III. E-CODE SECURE WEB ACCESS SOLUTION... 3 OVERVIEW... 3 PKI SECURE WEB ACCESS... 4 Description...
IT3503 Web Development Techniques (Optional)
INTRODUCTION Web Development Techniques (Optional) This is one of the three optional courses designed for Semester 3 of the Bachelor of Information Technology Degree program. This course on web development
Software Requirement Specification for Web Based Integrated Development Environment. DEVCLOUD Web Based Integrated Development Environment.
Software Requirement Specification for Web Based Integrated Development Environment DEVCLOUD Web Based Integrated Development Environment TinTin Alican Güçlükol Anıl Paçacı Meriç Taze Serbay Arslanhan
Architecture Workshop
TIE-13100 / TIE-13106 Tietotekniikan projektityö / Project Work on Pervasive Systems Architecture Workshop Hadaytullah Marko Leppänen 21.10.2014 Workshop Plan Start Technologies Table (Collaboration) Workshop
Threat Modelling for Web Application Deployment. Ivan Ristic [email protected] (Thinking Stone)
Threat Modelling for Web Application Deployment Ivan Ristic [email protected] (Thinking Stone) Talk Overview 1. Introducing Threat Modelling 2. Real-world Example 3. Questions Who Am I? Developer /
Luxriot Broadcast Server Manual 21.01.2013
Luxriot Broadcast Server Manual 21.01.2013 Table of contents Introduction... 2 Luxriot Broadcast Server system requirements...3 Installation... 4 Luxriot Broadcast Server configuration...5 Broadcast Server
December 2015 702P00860. Xerox App Studio 3.0 Information Assurance Disclosure
December 2015 702P00860 Xerox App Studio 3.0 Information Assurance Disclosure 2014 Xerox Corporation. All rights reserved. Xerox and Xerox and Design and ConnectKey are trademarks of Xerox Corporation
LAMP Server A Brief Overview
2012 LAMP Server A Brief Overview Daniel Eakins Santa Fe College CTS 2356 Advanced Administration 3/21/2012 Abstract LAMP is short for Linux, Apache, MySQL, and PHP. LAMP servers are typically not Windows
Mobile Cloud Computing T-110.5121 Open Source IaaS
Mobile Cloud Computing T-110.5121 Open Source IaaS Tommi Mäkelä, Otaniemi Evolution Mainframe Centralized computation and storage, thin clients Dedicated hardware, software, experienced staff High capital
Web. Programming. Hans- Pe0er Halvorsen, M.Sc. h0p://home.hit.no/~hansha/?page=sojware_development
h0p://home.hit.no/~hansha/?page=sojware_development Web O. Widder. (2013). geek&poke. Available: h0p://geek- and- poke.com Programming Hans- Pe0er Halvorsen, M.Sc. 1 Web is the Present and the Future 2
Pemrograman Web. 1. Pengenalan Web Server. M. Udin Harun Al Rasyid, S.Kom, Ph.D http://lecturer.eepis-its.edu/~udinharun udinharun@eepis-its.
Pemrograman Web 1. Pengenalan Web Server M. Udin Harun Al Rasyid, S.Kom, Ph.D http://lecturer.eepis-its.edu/~udinharun [email protected] Table of Contents World Wide Web Web Page Web Server Internet
Secure Web Development Teaching Modules 1. Threat Assessment
Secure Web Development Teaching Modules 1 Threat Assessment Contents 1 Concepts... 1 1.1 Software Assurance Maturity Model... 1 1.2 Security practices for construction... 3 1.3 Web application security
Getting started with OWASP WebGoat 4.0 and SOAPUI.
Getting started with OWASP WebGoat 4.0 and SOAPUI. Hacking web services, an introduction. Version 1.0 by Philippe Bogaerts [email protected] www.radarhack.com Reviewed by Erwin Geirnaert
Business Application Services Testing
Business Application Services Testing Curriculum Structure Course name Duration(days) Express 2 Testing Concept and methodologies 3 Introduction to Performance Testing 3 Web Testing 2 QTP 5 SQL 5 Load
Casper Suite. Security Overview
Casper Suite Security Overview JAMF Software, LLC 2015 JAMF Software, LLC. All rights reserved. JAMF Software has made all efforts to ensure that this guide is accurate. JAMF Software 301 4th Ave S Suite
GARDEN STATE APARTMENTS LLC. CUSTOMER RELATIONSHIP MANAGEMENT SYSTEM (FINAL MILESTONE)
GARDEN STATE APARTMENTS LLC. CUSTOMER RELATIONSHIP MANAGEMENT SYSTEM (FINAL MILESTONE) GROUP #7: James Edward Bell Mark Dudek Michael DiCroce Curtis Hammell December 13, 2013 1 Table of Contents SECTION
Business & Computing Examinations (BCE) LONDON (UK)
Business & Computing Examinations (BCE) LONDON (UK) Web Design Qualification Analysis & Occupational Outlook The development of BCE qualifications include extensive market research from the following sources:
Gladinet Cloud Enterprise
GLADINET, INC Gladinet Cloud Enterprise Multi-Site Deployment Guide Gladinet, Inc. 9/27/2013 This document discusses the technologies behind Gladinet Cloud Enterprise Copyright 2013 Gladinet, Inc. Table
Lync Online Deployment Guide. Version 1.0
Date 28/07/2014 Table of Contents 1. Provisioning Lync Online... 1 1.1 Operating System Requirements... 1 1.2 Browser Requirements Administrative Centre... 1 2. Obtaining your login Credentials & Logging
Cyber Security Workshop Ethical Web Hacking
Cyber Security Workshop Ethical Web Hacking May 2015 Setting up WebGoat and Burp Suite Hacking Challenges in WebGoat Concepts in Web Technologies and Ethical Hacking 1 P a g e Downloading WebGoat and Burp
RingStor User Manual. Version 2.1 Last Update on September 17th, 2015. RingStor, Inc. 197 Route 18 South, Ste 3000 East Brunswick, NJ 08816.
RingStor User Manual Version 2.1 Last Update on September 17th, 2015 RingStor, Inc. 197 Route 18 South, Ste 3000 East Brunswick, NJ 08816 Page 1 Table of Contents 1 Overview... 5 1.1 RingStor Data Protection...
How To Design An Information System
Information system for production and mounting of plastic windows MARCEL, MELIŠ Slovak University of Technology - Faculty of Material Sciences and Technology in Trnava, Paulínska 16 street, Trnava, 917
Security in the Sauce Labs Cloud
SAUCE LABS REPORT Security in the Sauce Labs Cloud Practices and protocols used in Sauce s infrastructure and Sauce Connect Overview It s impossible to deny that in this day and age internet security should
Web Hosting Features. Small Office Premium. Small Office. Basic Premium. Enterprise. Basic. General
General Basic Basic Small Office Small Office Enterprise Enterprise RAID Web Storage 200 MB 1.5 MB 3 GB 6 GB 12 GB 42 GB Web Transfer Limit 36 GB 192 GB 288 GB 480 GB 960 GB 1200 GB Mail boxes 0 23 30
VOL. 2, NO. 1, January 2012 ISSN 2225-7217 ARPN Journal of Science and Technology 2010-2012 ARPN Journals. All rights reserved
Mobile Application for News and Interactive Services L. Ashwin Kumar Department of Information Technology, JNTU, Hyderabad, India [email protected] ABSTRACT In this paper, we describe the design and
HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013
HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013 Riley Moses Bri Fidder Jon Lewis Introduction & Product Vision BIMShift is a company that provides all
Programming exercises (Assignments)
Course 2013 / 2014 Programming exercises (Assignments) TECHNOLOGIES FOR DEVELOPING WEB USER INTERFACES Websites (HTML5 and CSS3) Table of contents Technologies for developing web user interfaces... 1 Websites
CEFNS Web Hosting a Guide for CS212
CEFNS Web Hosting a Guide for CS212 INTRODUCTION: TOOLS: In CS212, you will be learning the basics of web development. Therefore, you want to keep your tools to a minimum so that you understand how things
ManageEngine ADSelfService Plus. Evaluator s Guide
ManageEngine ADSelfService Plus Evaluator s Guide Table of Contents Document Summary:...3 ADSelfService Plus Overview:...3 Core Features & Benefits:...4 ADSelfService Plus Architecture:...5 Admin Portal:...
Secure Web Development Teaching Modules 1. Security Testing. 1.1 Security Practices for Software Verification
Secure Web Development Teaching Modules 1 Security Testing Contents 1 Concepts... 1 1.1 Security Practices for Software Verification... 1 1.2 Software Security Testing... 2 2 Labs Objectives... 2 3 Lab
JAMF Software Server Installation and Configuration Guide for OS X. Version 9.2
JAMF Software Server Installation and Configuration Guide for OS X Version 9.2 JAMF Software, LLC 2013 JAMF Software, LLC. All rights reserved. JAMF Software has made all efforts to ensure that this guide
Proposal Submission System - A Content Management System Approach for Proposal Submission
Proposal Submission System - A Content Management System Approach for Proposal Submission Saeed Shadlou, Chai Kinn Pong, Sanath Sukumaran Taylor's University ABSTRACT Submissions of proposals are very
External Vulnerability Assessment. -Technical Summary- ABC ORGANIZATION
External Vulnerability Assessment -Technical Summary- Prepared for: ABC ORGANIZATI On March 9, 2008 Prepared by: AOS Security Solutions 1 of 13 Table of Contents Executive Summary... 3 Discovered Security
Getting Started with Dynamic Web Sites
PHP Tutorial 1 Getting Started with Dynamic Web Sites Setting Up Your Computer To follow this tutorial, you ll need to have PHP, MySQL and a Web server up and running on your computer. This will be your
Search help. More on Office.com: images templates
Page 1 of 14 Access 2010 Home > Access 2010 Help and How-to > Getting started Search help More on Office.com: images templates Access 2010: database tasks Here are some basic database tasks that you can
MEGA Web Application Architecture Overview MEGA 2009 SP4
Revised: September 2, 2010 Created: March 31, 2010 Author: Jérôme Horber CONTENTS Summary This document describes the system requirements and possible deployment architectures for MEGA Web Application.
3DHOP Local Setup. Lezione 14 Maggio 2015
Lezione 14 Maggio 2015 3DHOP what is it? Basically a set of web files :.html (hyper text markup language) The main file, it contains the Web page structure e some basic functions..js (javascript) The brain
Manual. Netumo NETUMO HELP MANUAL WWW.NETUMO.COM. Copyright Netumo 2014 All Rights Reserved
Manual Netumo NETUMO HELP MANUAL WWW.NETUMO.COM Copyright Netumo 2014 All Rights Reserved Table of Contents 1 Introduction... 0 2 Creating an Account... 0 2.1 Additional services Login... 1 3 Adding a
Integrating Online Banking and Top-up Card into Payment Gateway
Internship Report Master of Software Engineering (2012-2014) Integrating Online Banking and Top-up Card into Payment Gateway Author: DAO Nguyen Vu Supervisor: HO Hoang Thuong January 11, 2015 Acknowledgment
TYLER JUNIOR COLLEGE School of Continuing Studies 1530 SSW Loop 323 Tyler, TX 75701 1.800.298.5226 www.tjc.edu/continuingstudies/mycaa
TYLER JUNIOR COLLEGE School of Continuing Studies 1530 SSW Loop 323 Tyler, TX 75701 1.800.298.5226 www.tjc.edu/continuingstudies/mycaa Education & Training Plan CompTIA N+ Specialist Program Student Full
System Administration Training Guide. S100 Installation and Site Management
System Administration Training Guide S100 Installation and Site Management Table of contents System Requirements for Acumatica ERP 4.2... 5 Learning Objects:... 5 Web Browser... 5 Server Software... 5
owncloud Architecture Overview
owncloud Architecture Overview Time to get control back Employees are using cloud-based services to share sensitive company data with vendors, customers, partners and each other. They are syncing data
JAMF Software Server Installation and Configuration Guide for Linux. Version 9.2
JAMF Software Server Installation and Configuration Guide for Linux Version 9.2 JAMF Software, LLC 2013 JAMF Software, LLC. All rights reserved. JAMF Software has made all efforts to ensure that this guide
Software Requirements Specification
Software Requirements Specification Version 1.1 March 7, 2013 Prepared by Group Name: The Constructors Alex Hamstra 4506291 [email protected] Jared Roesch 4826574 [email protected] Kyle Jorgensen
Short notes on webpage programming languages
Short notes on webpage programming languages What is HTML? HTML is a language for describing web pages. HTML stands for Hyper Text Markup Language HTML is a markup language A markup language is a set of
THE CHALLENGE OF ADMINISTERING WEBSITES OR APPLICATIONS THAT REQUIRE 24/7 ACCESSIBILITY
THE CHALLENGE OF ADMINISTERING WEBSITES OR APPLICATIONS THAT REQUIRE 24/7 ACCESSIBILITY As the constantly growing demands of businesses and organizations operating in a global economy cause an increased
Web Application Penetration Testing
Web Application Penetration Testing 2010 2010 AT&T Intellectual Property. All rights reserved. AT&T and the AT&T logo are trademarks of AT&T Intellectual Property. Will Bechtel [email protected]
Lesson 7 - Website Administration
Lesson 7 - Website Administration If you are hired as a web designer, your client will most likely expect you do more than just create their website. They will expect you to also know how to get their
SECURITY DOCUMENT. BetterTranslationTechnology
SECURITY DOCUMENT BetterTranslationTechnology XTM Security Document Documentation for XTM Version 6.2 Published by XTM International Ltd. Copyright XTM International Ltd. All rights reserved. No part of
Testing Web Applications for SQL Injection Sam Shober [email protected]
Testing Web Applications for SQL Injection Sam Shober [email protected] Abstract: This paper discusses the SQL injection vulnerability, its impact on web applications, methods for pre-deployment and
