Wednesday, September 16, 2009

Exercise 8

Elevator Pitch 1

This is the first of two elevator pitches for ITC382 business to business systems. This subject will follow our progress through the use of ruby on rails as a framework for the development of an online system. During this 13 week period we will delve deep into the world of developing online systems and plan, design and develop our way to the final goal. During our studies we will utilize a blog to comment on our research and experiences with ruby on rails.
Ruby on rails is an open source web framework that has been optimised for greater efficiency and sustained productivity. Ruby on rails can be used to create e-commerce solutions including online booking systems as well as client/server computing in general. The design concepts that are used in ruby on rails are REST, DRY and convention over configuration. The REST architecture is implemented by ruby on rails through representing its states in http format. The DRY concept states that the unnecessary repetition of code is wasteful and hinders productivity. Toolsets and programming practices help overcome these issues. Convention over configuration is a model that reduces the amount of configuration needed by the administrator that increases the simplicity of development without reducing flexibility.

Exercise 7

The perception that integration will be getting stronger in the near future is coming about as businesses strive to make available more resources in the one place. If a business is able to provide more features for their service than any of its competitors than it is more likely to have a higher number of users. Through integration the features and components of multiple systems can be integrated into a larger, more efficient and more powerful system, which in the long run will see a reduction in costs. An example of two systems that have been integrated is a website for woolworths supermarket and the ability to order groceries online.

Representational State Transfer, when compared to other web services, has many highly desirable architectual properties: scalability, performance security, reliability and extensibility.

Tuesday, September 15, 2009

Exercise 6

I spent hours on end for this exercise, I really must be missing something with Ruby on Rails. I can get most of the basics working but when I try to get further into it I seem to confuse myself. I really need to step back and start from the beginning again, hopefully it clicks.

Sunday, September 13, 2009

Exercise 5

This exercise examines some environment variables on the server. I did this exercise on a windows machine using the $_SERVER[variable] and got these results:
  • $_SERVER[$REMOTE_ADDR] - You are connected from: 127.0.0.1

  • $_SERVER[$PHP_SELF] - You are connected from: 127.0.0.1

The second exercise creates a variable, $myvar, and assigns it a value, Hello World!. The echo function is then used to display the variable, Hello World!, on the screen for the user.




The third exercise creates a form to enter your name which uses the "Return" key to submit the text. The result was:




The fourth exercise builds a php file that uses the input from the last exercise and prints it on the screen for the user. Although I did not get the desired result, from purely ready the code I could see what the outcome was supposed to be.



For the fifth exercise I could create the database and tables, no worries. Using the database commands:

CREATE DATABASE mydatabase;

USE mydatabase;

CREATE TABLE employees

(First varchar(20) NOT NULL,

Last varchar(20) NOT NULL,

Address varchar(50) NOT NULL,

Position varchar(20) NOT NULL);

The rest of exercise five is where I had trouble and run out of time to complete. Hopefully have a bit of time towards the end of semester to fix it up.

Workshop 4

I have spent a couple of hours on the coding examples at http://www.fincher.org/tips/Languages/Ruby/, I found these tutorials good for the basics and learnt a few extra things on top of what I had already picked up. Also, a couple of different ways of doing similar things. I have become more familiar and confident with the basic functionality of Ruby through this workshop.

The syntax for a Javascript "If" statement is as follows:
  • if (condition) { code to be executed if condition is true }

The syntax for a Ruby "If" statement is as follows:

  • if object < method =" action">

The major difference here is the use of parentheses. Ruby is written with perentheses for purpose of precedence, while in Java conditions must be inside perentheses and curly brackets are used around the code block.

Some of the similarities between Java and Ruby include:

  • They both include public, private and protected methods
  • Memory is managed via a "grabage collector"
  • Both are object-orientated languages

References

Saturday, September 12, 2009

Workshop 3

The MySQL Graphical User Interface contained tools including:
  • MySQL Administrator 1.2
  • MySQL Query Browser 1.2
  • MySQL Migration ToolKit 1.1

Rails is installed and running, however, my lack of development skills/knowledge is showing as a large portion of my time has been spent getting this section up and running with little success. I am understanding what Rails is and why it is used, however, when it comes to fitting it all together to get a working app, that is where I fall in a heap. I am studying network engineering and through my frustrations with getting Ruby on Rails to work I am becoming more and more confident that I have chosen the right path for me.

I will try to increase my learning and skills with rails through more Ruby on Rails reading and hopefully get my head around this development process. Resources currently being looked at are:

Thursday, September 10, 2009

WorkShop 2

Convention over configuration means the developer only needs to specify unconventional aspects of the application. Assumptions are made of what the developer wants to do and how to do it. For example if there is a class 'sale' in the model, by default the corresponding table is called 'sale'. The Rails framework reduces the amount of tweaking and configuration, by the developer, that is needed to get things working.

I have learnt more about the Model-View-Controller (MVC) through the
http://wiki.squeak.org/squeak/1767. I have learnt that MVC is the pattern behind the traditional SmallTalk80 user interface and is one of the earliest and most successful design patterns. MVC was developed in 1979 by Tygve Reenskaug.

In MVC the user input, modelling of the external world and the visual feedback to the user are separated and handled by 3 types of object:
  • The view manages the graphical and/or textual output
  • The controller interprets the mouse and keyboard inputs from the user
  • And, the model manages the behaviour and data of the application domain, responds to requests for information about its state, and responds to instructions to change its current state.

References
  • http://wiki.squeak.org/squeak/1767
  • http://guides.rubyonrails.org/getting_started.html

Sunday, September 6, 2009

Workshop 1

So firstly I haven't got much of a clue how Ruby on Rails works but through a bit of reading I'm beginning to get an idea of what it does. To start with I had a few troubles figuring out which Ruby on Rails to use but I got v2.0 and now seems to be running fine. Time will tell how it goes from here.

I have dabbled a little bit in in php and Java during my TAFE course but very little!! Did a bit of work with VBScript, SQL and HTML though. Been a long time since I've used any of them so I'm re-learning a bit.

Ruby is an interpreted scripting language as it is compiled at run time. It does not need to be interpreted into binary code before it is run.

Rails is a web framework separated into various packages that the Ruby code is run and encapsulated to produce web applications. This results in the developing process requiring less tweaking and configuring than other methods of development.

Exercise 4

A P2P system is a network of clients sharing some of their processing power, network bandwidth and disk space directly with their peers, which totally cuts out any go-between servers. Thus peers become both the suppliers and the consumers of the resources. The most common of these P2P networks today comes in the form of BitTorrent. While using bittorrent a tracker is downloaded with information such as a checksum, file size and tracker. Ther bittorrent client is used to make the connections and download the files, piece by piece. The pieces of the file that you have already been downloaded are uploaded to other users that need them. In order for peers to be able to download files from others they must be uploading what they have already received. The tracker constantly updates the list of peers and seeds that are connected.

Client/Server architecture is most commonly used throughout the internet and within business networks. Everytime you type in a web address and connect to a website, you are the client and the website is the server. In the client/server architecture server's hold the bulk of the data and the clients access the server to retreive or manipulate that data. In some cases servers run applications aswell as store the data. This is typical of a ThinClient setup, where the desktop has little processing power and hard disk space or memory. All of the processing is performed on a central server.

Exercise 3

Domain Name Service is a service which translates IP addresses into words. DNS was developed to translate numeric binary identifiers associated with networking addresses into domain names that are meaningful for humans, and vice-versa. For example, http://www.google.com.au/ is much easier to remember and determine where you are actually going than the IP address 66.102.11.99. DNS will become even more important when IPv6 takes over from IPv4, in possibly the not too distant future.

Dynamic Host Configuration Protocol is a service which is used by devices to automatically obtain configuration information necessary to operate in an IP network. DHCP servers send information to clients on the network such as IP addresses, subnet mask and the default gateway etc.

The main differing feature of DNS and DHCP is the information given by both, DHCP allocates the IP configuration information for a device and DNS allocates a meaningful name for an IP address.

It becomes important for an online business application to use a static IP address rather than a dynamically assigned one from DHCP because DHCP allocates the next available IP address to a device, let’s say 'device1'. This can be an issue if another device, 'device2', receives the IP information that was originally used by 'device1', this will result in the DNS table being incorrect and using the domain name will result in 'device1' being inaccessible. The DNS server can resolve this issue but it takes time and any time that the device is inaccessible is money lost in the business world.

A Virtual Private Network could be used in a Business to Business system to allow the secure transfer of client and mission critical data between business sites or clients. A VPN can also give a means of securely connecting to a private part of a business’s website. VPN's can be useful to business by segregating networks into departments of a business rather than the geographical location.

Grid computing is a combination of computer resources are collectively used to manipulate and process data. Grid computing is commonly used when needing a great number of computing cycles or there is a need to process large amounts of data. This allows smaller businesses the chance to utilise their computing power to meet the demand without having to fork out thousands of dollars to buy a new server.

The next generation of wireless mesh networks will aid businesses in the cost of wired networks and increase the mobility of its staff. Wireless mesh networks are made up of multiple wireless nodes overlapping to produce a much larger network coverage area, this will allow staff to roam anywhere within the coverage area without losing good quality coverage or connection to the network.

Cloud applications can be used in business to aid in clients not needing to run some applications on their local machine. Other types of cloud applications such as P2P systems remove the need for data to be stored on a server, instead the data is stored and load balanced between the peers connecting to each other.

Cloud computing may be viewed as a 'black box' because it is not necessary to know the inner workings of the system to be able to get the most out of it. All that is needed is the appropriate information to be able to connect and receive information from it, for example in a P2P network. Grid computing is known as a 'white box' because in order to get the most efficiency out of the grid computing setup, you must know the inner workings of the system and load balance processing between them.

Exercise 2

Rapid Evolutionary Prototyping is an approach that aids in reducing the time between planning and implementation. The use object orientated programming such as Java and C++ enable developers to program software components that can be reused time after time in applications other than those which they were originally meant for. Using a prototype aims to help refine the stakeholders requirements for a product and quickly make it ready for testing. The steps that are undertaken in REP include:

  • Gathering data and requirements from stakeholders
  • Develop/Implement prototype
  • Test and validate and get user feedback
  • Iterate to satisfy all users needs


REP and Agile Development are closely related as close contact is required between the developer and the stakeholder to ensure that the delivered prototype, and ultimately, the delivered system meet the stakeholder’s needs.

Saturday, September 5, 2009

Exercise 1

An online community is a group of people interacting via a computer network through communications such as newsletters, email, internet social network services or instant messaging rather than face to face, for social, education, professional and many other purposes. Online communities depend upon social interaction and exchange between users online.

These online communities allow the people involved to share their interests, views and thoughts with other like minded people. Websites such as Facebook, MySpace and Bebo have created the means for online communities generally for people that have some form of real life relationship, whereas, websites like Tapped In (for educational professionals) and Charity Channel (for non-profit professionals) provide a place for professionals to share their experiences and thoughts etc.

Online communities have become important for e-commerce as it allows people to buy and sell goods and services. This 'new' type of community has provided different benefits and opportunities for businesses that were never possible in the past, some of these include online purchasing where a business does not require a physical shop front, which allows small businesses to compete with large enterprise, and also create the ability to advertise to specific groups of people.

Online communities allow for people to rate and comment on a businesses goods or services which allows other potential buyers to determine which items to purchase or whether or not to make a purchase. This rating system has been a large benefit for the online ordering website www.amazon.com, the site is able to bring together like minded people through the use of forums on the products they provide and entice discussion on those particular products. Items are easily ordered from the site through a shopping cart system, a virtual representation of buying groceries at a supermarket, where items can be viewed, then added to the cart and paid for at the 'check-out' through the sites secure payment system.

Price comparison sites are emerging throughout the internet which allows online users to compare prices and products in there own time, 24 hours a day 7 days a week, which saves time and the need to travel all over town finding the best deal. Some sites even allow for user input and discussions on products and even businesses which can help when choosing a product that may require follow up service from the business.