2 Bytes Is IT Based Company Which Provides a Full Spectrum of Software Developments. The

2Bytes project

Java to HTML5


2 Bytes is a small software development company with at most 10 employees. The company handles the project from co-operating companies in Australia and US. Specific Company details can be found on their website Estimator application is a java based application which estimates the length and area of underlay images and produces output in a word report/CSV file/HTML report. This application allows you to scale and draw over the underlay images. 2Bytes needs to migrate, the java based application to Web platform to overcome the dependency of the operating system. This Shift to Web makes the application more vulnerable. The motive of the application is to maintain the specific customer outcomes. 2 Bytes need to recruit interns for the purpose of same with a position title as Migration Research & Planning Project. The profile is more related to research, plan, and recommendations which are made in this project. 2 Bytes have a requirement for specific networking students. The students with a strong hold on networking field are required, which will be helpful for creating client-server structure. The company requires undergraduate/master students. The internship drive will be at Melbourne from 19-23 March. Selected students will begin working on the project from 26th March. The Project will have a complete duration of 12 weeks. The project will require the supervision of exactly 2 hours daily. This recruitment will be helpful for 2 Bytes in order to expand their business and to attract future contracts.

2 Bytes is IT based company which provides a full spectrum of software developments. The company has the precise looking towards the users of the software. Every engagement requires certain analysis and resource gathering, so do the client requirements engagement requires:

Planning and development of software offerings is the major approach towards in the fulfillment of client requirements. The application should be a web-based application, and it should not be dependent on operating platforms. The application will be accessed through browsers and will be a web-based application. The development of this application will use Iterative engagement.

This is a step by step process in research is done on the current software development life cycle and then recommendations are prepared on the basis of client requirements [4]:

• Planning Phase

• Development Phase

• Stabilization Phase

• Deployment Phase

Figure 1 The Software Development Lifecycle of Project

The application will use cloud serves to run rather than running on clients server. Since the cloud servers are pretty much expensive than the home dedicated server. But the benefits which cloud offers overweigh the cost in this business. Cloud serves do not provide any expensive hardware and software servers. This type of engagement will be best for such applications which are required to be supervised continuously. The cloud servers are more scalable than client’s local server; the application will be updated without depending on the operating platforms. Solutions to any problem are resolved from one side only and will be reflected all the users who are using the applications. 2 Bytes can implement BYOD approach. Cloud serves preserves a high risk of losing data. Data are backed up in the cloud at regular intervals [2].

There are certain implementation constraints while accessing the application:

  1. Authentication: The application need not be open source application, this web-based application must have certain authentication form to record the details of the customers who have accessed the application.
  2. Responsive: The working of the application must need to be same on all devices, no color/ layout distortion problem should occur with this application. Appropriate CSS need to be used to resize, enlarge or shrink the content so that it will look good on all devices.
  3. Browser: The application should run only on high-end browsers like chrome 8.1.

Client Requirements

The traditional way of the software development always very difficult because of the various types of Operating System available in the market. The company needs to develop the software for most of the software in order to stay in business. The proposed project requires a lot of hardware and software resources in order to complete the given task.

Hardware Requirements

  • High-performance server for the application server and database server
  • A network switch for the connectivity of the servers in order to provide the connectivity to the server for the various facility.
  • Security devices like anti-virus, firewall, IPS/IDS and etch for the data center machine to protect it from the malicious user
  • High-speed network connectivity with the internet

Software requirements

•Operating system: Android/MAC/Windows/Linux/IOS

•Browser: Chrome 8.1 or higher

Non-Functional Requirements [5]

Quality: Quality of the application should be acceptable; 2 Bytes should deliver values with the product. The application must need to be scalable to the ongoing demand. 2 Bytes must provide regular supervision on the application deployed, so as to maintain its quality. 2 Bytes must need to provide maintenance facility, so as the continuous working of the project.

  1. Performance: The application’s performance must not be affected by any specific hardware or hardware requirements. The application should work with the same pace irrespective of the operating system. Since the application runs on cloud serves, so there must be some relevant change in its performance as compared to the Web-based application which runs on home servers.
  2. Security: Maintain the Security of client’s data should be the foremost motive of the 2 Bytes. The application needs to maintain the backup of client’s data at regular intervals to avoid data loss disaster. Nevertheless, there should not be any circumstance of phishing or other cybercrimes.
  3. Monitoring: The monitoring is the critical part of the web-based application. As all the load is now transferred from the user side to server side. So 24x7 monitoring is required to detect an anomaly in the system. And also helps the industry to manage resources according to the requirement and demand on the internet.

Functional Requirements

  1. Linking: All the pages in the Estimator applications need to well link with each other and should perform their specific functions under any circumstances. Regression testing must need to be carried out without the actual deployment of the application [4].

Storage permissions: The application must allow the client to select the storage area. The output generated file can be stored in either local storage or at the cloud storage.

Problem Domain and Research Questions

The currently existing 2Bytes estimator software is based on Java programming. The current software gives essential estimation abilities by drawing over a scaled underlay picture and enables yield to a html or word document. With the help of Java runtime Platform (JRE) the current software is running in all platforms including windows, Mac or either on Linux. But the main problem is this software is not supported on apple iPhone operating systems (IOS).

IOS is a mobile operating system developed by apple which currently runs on iPhone, iPad and iPad. However it is simply designed and easy to use, it is still far differ from traditional operating systems. Anyone cannot manage files and folders like you can on Mac os or windows or in Android devices, additionally you cannot run any java programs in apple IOS. A single software could be built and run on multiple platforms however.it is still a problem in the case of IOs devices. Which is the main problem identified during the research and the clients are in the attempt to find some other different structure for their software that will allows

The questions that arises while research are:

  1. Why software written in JavaScript are not supported on IOS devices?

Migration and all the phases can be described as, Migration of an application from one platform to another is a complete transfer of all the asset of an application and the process is considered be very crucial as there are many things that needs to be considered. With this, it requires a knowledge on both hardware and software and it is costly and time consuming as well. Software migration in a general term generally refers to either a sort of transfer for applications, operating system, databases, networks, content management systems (CMS), or even an IT infrastructure. Migration purpose is done for greater functionality, maintainability and accessibility. The problems faced during the migration also varies and depends on the type of migration. In our case it is the migration of java-based roofing estimating application to HTMl5 and following things should be considered and this is in relation to our 2Bytes project. After coming to a point that we want to migrate a software the following things are to be considered.

Getting familiar with the software

The very first thing is to get familiar with the use of the software and its functionality. It is important know how the application works before initializing the actual migration work so that we can make sure all the existing functionality available in the present java-based application are not missed while migrating it to HTML5. For this we have used the software and looked into how it works.

Wireframing

It is the next step of migration where we will be designing all the layouts of the application in HTML5. It is going to give us the look on how it is going to look in the web. (i.e. HTML5). It is the phase where we are much more focused on the user Interface and the look of the application.

Development

It is the step after wireframing. In this phase we will start developing the application on the web. For this phase to be completed we are required to have programming and mark-up knowledge.

The very first programming knowledge that we would require would be front-end knowledge. This means we must know the set of front-End web Skills. I.e. HTML, CSS and JavaScript. These are the core to begin with. HTML and CSS are simply Mark-up and styling the User interface of a design whereas JavaScript makes the page the user is going to view much more dynamic by adding and responding to various user events such as hover. Click, scroll and much more.

Beside this the thing that we need to understand is, it is the browser-based migration from java, so the operating system won’t play any role. HTML5 means everything would happen in browser only and for this cross-browser compatibility must be considered. That means we must write programs that runs in every browser in the market. Although the code is same because of different browser engines we must consider vendor prefixes.

Since our client wants client-server-based model to be implemented it is also essential for us to know about the Back-End Technology. For this we will go with PHP as a server and MySQL as a database where our application data would be stored and retrieved to the front end when needed. PHP as a server and MySQL as a database would go together as these two programming languages has got a very long history than any other programming languages. i.e. they have got a long history in the market so for the future improvement and maintenance it would not be hard to find a skilled technical person.

Implementation

The next stage would be to implement the things that we have done. i.e. deploy the application live. For this we must keep our files on the server and perform the test and see weather the things work as we expect them to work or not. If we find any bug or issues we would note them and do fixtures and re-deploy the application again.

Maintenance and upgrade

Upon deployment our task is still not done. In the world of IT new technologies are introduced rapidly so we even have to endure change. So we must look and do constant maintained of the application to make sure it meets the recent market demands and tech Spec.

Literature review

Literature Review (Cloud Server)

A startup named 2bytes is served numerous solutions in the IT field to multiple clients in a daily run. The aim is to avail best solutions, especially in application-based projects. In this report, a detailed view of steps taken into consideration with respect to PC/MAC based application is given. The application is purely Java based and avails estimation functionalities for drawing the scaled underlay images with allowing the output in the form of word documents and HTML. Functionalities like point-based drawings and planes are also availed. The best part is this application development outputs in a wide range of formats like word, CSV as well as HTML one.

For the research and development of the application developed by 2bytes, the hiring of interns is being done. The complete process is of 12 weeks that is 2 hours per day supervision requirement.

(Borges, M., Barros, E., & Maia, P. H. 2017) This journal I selected has completely solved the issue of bulk existing model startup and data as faced in 2 bytes to the new one by proposing a semi-automatic approach to aid the cloud migration with respect to the applications in terms of the platform as a service environment. This procedure has been handled using a cloud restriction solver, it functions by avoiding platform restrictions via user-defined refactoring. The approach selected consists of two major phases including refactoring execution and cloud restriction identification with a major support of tools working automatically.

Including this contribution has been provided by implementing approach itself meaning independent cloud with their fracturing execution engines and supporting frameworks also to migrate applications developed on Google application.

This system bears some limitations also including one like the requirement of adapters and proxies to manage and cover code transformations, less efficient adapters, in replacement of JDK classes’ similar behavior of java classes could not be seen in the new environment and dynamic proxy management. Here it links again to the 2byte company situation as the application being developed is in Java.

Benefits of this system include mitigating the task of coders, automated tools help to migrate the applications into cloud models. Also serves cost management of cloud which is the biggest challenge to deal with in case of cloud migration with respect to application handling. Also, it has used a tool named CRS4GAE which enables the reusing of applications through the same cloud provider and it generally benefits those companies which consist applications with similar code, to avoid redundancy this proves to be helpful. Usage of two tools like CRS Analyzer and Refractor, Functionalities provided is the identification of code pieces violating restrictions and changes the pieces within equivalent cloud-enabled services.

Major requirements with respect to a client like security provision, a high-performance requirement from the server at the client end to run the application successfully, functioning provision of the firewall for datacenter machine to protect from malicious users and last but not the least network switch provision is kept in mind. As the application developer uses a cloud server for management at client end so the benefits including web-based high authentication, the responsiveness of application using advanced CSS is provided, also the browser management with respect to application usage at client end is also provided at a good level. Addition of cloud-based benefits with the working of this application is an added feature [7]. But disadvantages added due to the cloud like being more internets dependent can prove to be a challenge to deal with. Discussing the project design, requirement analysis and agile as software development model owns power to describe the detailed view of what project phases have gone through just like I have used web server based connectivity for a java application to run with respect to the cloud on client end in a well-organized form [7]. Web-based connectivity used in this works in the form of request dependent system. When the server requests for dynamic pages, after finding it passes into application server then the scan is done on the server and instructions respectively. Query is sent by application server at database driver then the query is executed by the driver, record sets are passed to the driver and then to the server. Data is filled by application server into a web server and then the web browser receives the requested page.

This process adds benefits of web server like fast response, exact page delivered as requested but also it adds disadvantages to the working of java based applications at client end as challenges faced can be delay in page display, unknown errors and third-party attacks on the data being delivered at the client end or the network disruptions caused by server issues. All the listed benefits, limitations and recommendations in this literature review are respect to 2byte IT solutions.