Thursday, May 27, 2010

Elevator pitch 2

Hi everybody!
Finally, we have already finished assignment 2 for ITC382 - Business to Business, this is also a final assignment. After doing all of the exercise and workshop, more or less, now we have acquired a knowledge of the E-System infrastructure and particular in programming on Ruby.

Indeed, Study Guide exercises helped us to gain our knowledge in specified topics such as Internet Security, Concurrency and transactions, Designing distributes systems, Bots, agents, spiders and mobile computing, etc. Every topic gave us some new concepts and we think, it will be very important for us in the future when we work in the IT industry.

Secondly, we also learn about Ruby, especially in Sinatra. After written the guestbook application by Sinatra and MongoHQ Database, we feel that it is really interesting and effective. We think, Ruby language will more and more popular in the future.

This is all about we learn in this subject, hopefully, you will feel it is useful and partly give you a short picture about e-system.

Thank you
Elevator Pitch 2 Recording - Download

Step 8 - Question

a. What is MongoDB? How does it relate to MongoHQ

According to Mongodb.org (2010), MongoDB (from “humongous”) is a scalable, high-performance, open source, document-oriented database, and written in C++ programming language. As Wikipedia (2010) explain that MongoDB is designed for problems without heavy transactional requirements that are not easily solved by traditional RDBMSs, including problems that require databases to span many servers. MongoDB is not a relational database management system. The database manages collections of JSON-like documents that are stored in a binary format referred to as BSON.

MongoDB relates to MongoHQ:

MongoHQ provides a hosting platform for MongoDB and also uses MongoDB as the back-end for its service.

References

Mongodb (2010). The Best Features of Document Databases Key-Value Stores, and RDBMSes. Retrieved from www.Mongodb.org

Wikipedia (2010). MongoDB. Retrieved from http://en.wikipedia.org/wiki/MongoDB

b. What is MongoMapper

According to Github.com (2010), MongoMapper is a Ruby wrapper library which aims to make using MongoDB much easier and friendlier than the default Ruby driver provided by XGen. When is makes sense to do so, MongoMapper tries to stick closely with the familiar syntax of ActiveRecord.

Due to the way MongoDB stores data, MongoMapper consists two key concepts are: Document and the EmbeddedDocument

The Document is essentially a record with fields

An Embedded Document is exactly like a Document, except that it is injected into a Document and still retains all of ts information.

References

Github.com (2010). MongoMapper. Retrieved from http://wiki.github.com/jnunemaker/mongomapper/

c. What is the relation between MongoDB and Mysql

This table below is the quick comparision between MongoDB and MySQL (mongodb.org, 2010)

MongoDB

MySQL

Data Model

Document-Oriented (BSON)

Relational

Data Types

string, int, double, boolean, date, bytearray, object, array, others

Link

Large Objects (File)

Yes (GridFS)

Blobs?

Replication

Master-slave

Master-slace

Object (row) Storage

Collection based

Table-slave

Query Method

Dynamic; object-based query language

Dynamic; SQL

Secondary Indexes

Yes

Yes

Atomicity

Single document

Yes-advanced

Interface

Native drivers

Native drivers

Server-side batch data manipulation

Map/Reduce, server-side javascript

Yes (SQL)

Written in

C++

C

Concurrency Control

Update in Place

Reference

Mongodb.org (2010). MongoDB, CouchDB, MySQL Compare Grid. Retrieved from http://www.mongodb.org/display/DOCS/MongoDB,+CouchDB,+MySQL+Compare+Grid

Step 7 - Deploy to Heroku

"Heroku open" and then navigate to Heroku web address. That is http://young-summer-66.heroku.com/


After click on "View Comment", it will direct to the View page.
Click on Add New Comment, it will redirect to the home page.

Exercise 15: M-commerce: Innovation and mobile devices

1. What is meant by a location based service? Explain using the Web applications found on a late model mobile device?

As Wikipedia (2010) defined, a location-based service (LBS) is an information and entertainment service, accessible with mobile devices through the mobile network and utilizing the ability to make use of the geographical position of the mobile device.

LBS service can be used in a different field; it could be in health, work, personal lift, etc. LBS service also involves service to locate a person or object or even track parcel and vehicle. Mobile commerce can be included in LBS when taking the form of coupons or advertising directed based on the current customer location. It can also be used for weather forecasts and location-based games.

These are some of the LBS services used web application in mobile device:

- Locating nearest business like ATM, Park, hospital, restaurant, etc.

- Navigation services like GPS

- Receiving alerts like a SMS notification

- Locating based mobile advertising

- Tracking resource like taxi booking, hotel, rental

- Business directory, weather, traffic service

References

Wikipedia (2010). Location based service. Retrieved from http://en.wikipedia.org/wiki/Location-based_service

2. Describe the purpose of the Open Mobile Alliance Initiative?

According to Wikipedia (2010) describes briefly that Open Mobile Alliance Initiative (OMA) is a standards body which develops open standards for the mobile phone industry.

The OMA is established to grow the market for the entire mobile industry by removing the barries to global user adoption and by ensuring seamless application interoperability while allowing businesses to compete through innovation and differentiation (Palowireless, n.d).

Also following to PaloWireless (n.d), the OMA encourages competition through innovation and differentiation, while ensuring the interoperability of mobile service through the entire value chain. It will include all elements of the wireless value chain and contribute to timely and efficient introduction of service and applications to the market by creating a standards organization.

References

PaloWireless (n.d). The Open Mobile Alliance. Retrieved from http://www.palowireless.com/wap/oma.asp

Wikipedia (2010). Open Mobile Alliance. Retrieved from http://en.wikipedia.org/wiki/Open_Mobile_Alliance

3. What are the main components of a mobile Web services framework?

According to ESA (2004) presented the main components of a mobile Web services framework:

Mobile Server

The Mobile Server is a mobile remote computer; linked to the Internet via an Inmarsat Regional Broadband Global Area Network (RBGAN) User Terminal (UT) The mobile web services are active on this server. The mobile Server could be used as a server or as a client PC and it just accept requests from the Gatekeeper

Gatekeeper

The Gatekeeper is placed on the terrestrial Internet, and acts as the sole gateway to the Mobile Server. It is used to perform authentication and authorization of requests before sending them to the Mobile Server. Moreover, the Gatekeeper store buffered data, so it will enable more economic usage of the satellite link.

RBGAN UT / Thuraya Satellite/ RBGAN SAS

The physical connection between the remote web server and the Gatekeeper is established using a Satellite Access Station, a Telecommunications Satellite and a satellite modem.

GPS / Data Acquisition system / Web cam

The mobile Server is connected to a set of peripherals, such as a GPS device, a web cam or a Data Acquisition system. From these devices, data is collected by the web service.

Application server / Client PC

The Gatekeeper handles requests from clients over the Internet. A client can be a PC with a web browser, or another application using a http Simple Object Application Protocol – SOAP request.

References

ESA (2004). Mobile Web Services Framework Features. Retrieved from http://telecom.esa.int/telecom/www/object/index.cfm?fobjectid=12854

4. Visit an Airline Web site and search information on WAP or SMS or 3G mobile application access to booking airline services. The same services exist in banking. How do both industries compare?

I have visited the Jetstar website and accessed the SMS booking section. This facility allows people to make bookings 24 hours a day with the airline by SMS or a mobile phone. This advantage of this JetSMS technology support user to either book a flight or enquire on a low fare at any time or place with mobile coverage are immense (zdnet, 2004).

The SMS service provided in bank used to many purposes that enhance the security is one of them. For example, I browsed the netbank service in Commonwealths Bank and transfer the money. As I transfer money to new account, a security code will be sent to my mobile via SMS to ensure that I am a holder account.

The service for banking is different from airline booking that that it require more secure service user follow up the regulation properly.

Reference

Zdnet.com.au (2004). Jetstar kicks off SMS booking. Retrieved from http://www.zdnet.com.au/jetstar-kicks-off-sms-booking-139152769.htm

Exercise 14: Searching mechanisms, Virtual worlds and Cyberagents

1. What is a spider? What does it do?

According to TechTarget (2005), a spider is a program that visits Websites and reads their pages in order to create entries for a search engine index. Typically, Spiders are programmed to visit sites that have been submitted by their owners as new or updated. Entire sites or specific pages can be visited and indexed optionally. Spiders can visit many sites simultaneously; it can span a large of the “web” through several ways. One way is to follow all the hypertext links in each page until all the pages have been read. Beside that, spider can be used to gather information from any site and especially useful for creating automated task such as maintaining links or validating HTML code.

Reference

TechTarget (2005). Spider. Retrieved from http://whatis.techtarget.com/definition/0,,sid9_gci213035,00.html

2. Differentiate the various types of software agents.

In computer science, a software agent is a piece of software that acts for a user or other program in a relationship of agency (Wikipedia, 2010).

According to Peterindian.net (n.d), there are many type of software agents, each type has different function. Some of them listed below are the example:

- Cooperative agents communicate with other agents and act acts follow the result of that communication.

- Proactive agents initiate action without user prompting

- Adaptive agents, learning from past experience, and change to the given situation

- Personal agents are proactive and serve individual users.

- Collaborative agents are proactive and cooperate with other agents.

References

PeterIndian.net (n.d). Intelligent Software Agents – An Overview. Retrieved from http://www.peterindia.net/SoftwareAgentsView.html

Wikipedia (2010). Software Agent. Retrieved from http://en.wikipedia.org/wiki/Software_agent

3. Identify various activities in e-commerce where software agents are currently in use.

Umn (1999) identify that there are many activities in e-commerce which software agents are implementing

- Procurement: obtaining materials, services, managing inflow into the organization towards the end user

- Brokering Service: finding information about products, sellers, and prices, providing protection for privacy, validating purchasers’ credit, billing and accounting, etc.

- Digital Libraries and Recommending Services: retrieving information from distributed sources, filtering information on contents, collaborative fillering

- Notification Services: notifying of new books or CDs, notifying when specific products are available at a specific price.

References

Umn (1999). Agents and other ‘Intelligent Software’ for e-Commerce. Retrieved from http://www-users.cs.umn.edu/~gini/csom.html

4. Computing ethics and bot programming case study: rocky

a. Get an account username and password from the lecturer to LC_MOO at http://ispg .csu.edu.au:7680 and login to the Welcome Lobby

After I logged in with the username: train3 and password: train 3. This popup windows is displayed.

b. Hold a 5-minute discussion with Rocky on a special topic. Commands and chat are entered in the command box: act rocky (start bot) hush rocky (stop bot)

c. Rocky is an ELIZA-like bot. Report your findings

Rocky can give a corresponding action follow a pre-defined instruction. It is pretty interesting, but the answer is sometimes not match with my question. However, we can create an instruction by LC-MOO command to make it more excited

Tuesday, May 25, 2010

Exercise 13: Shopping cart specifications

Develop the class diagram for the following shopping cart specifications:

A shoppingCart object is associated with only one creditCard and customer and to items in itemToBuy object. Persistent customer information such as name, billing address, delivery address, e-mail address and credit rating is stored in the customer object. The credit card object is associated with a frequentShopper discount object, if the credit rating for the customer is good. The customer can make or cancel orders as well as add and delete items to the shopping cart product. The credit card object contains the secure method for checking that the charge is authentic.

(Click on the image to enlarge)

Exercise 12: Modelling with UML or MVC?

Examine the Use Case in Figure 4 and explain the MVC architecture of the online bookstore (the model the view and controllers) needed to Lookup Books and Add to Shopping Cart.




Model-View-Controller (MVC), an architechural pattern that is used for seperating our application into multiple parts, is probably one of the most mentioned patterns in the web application development in recent years (Pastor, 2010).

In MVC,an application is devided into three different parts based on the responsibilities of each part. The model will handle data and business logic, the controller is responsible for handling user's requests and call appropriate resouces(objects) to fullfil these requests and then forward the results to the view.The View acts as a user interface in which users can enter requests and receive results from the controller. The view can present data to users in any supported formats or layouts (Pastor, 2010). The main advantage of the MVC approach is the seperation between application logic and user's interface (presentation).

In the Usecase diagram above, the use case 100(make connection) is the controller. This controller will handle any user's requests, then call appropriate functions(also called as usercase) in the model such as lookup books(104) and Add to Shopping Cart(105). After processing the database the model will return founded data to the controller, then the controller will select appropriate view to present the results to user.

Note: the View and the Model are not shown in this UseCase Diagram.

Reference

Pastor, P.(2010).MVC for Noobs. Viewed 14 May 2010 from http://net.tutsplus.com/tutorials/other/mvc-for-noobs/