Wednesday, May 26, 2010

Elevator Pitch 2

Hopefully, this is my last subject for this MIT course. However, this subject, E-system Infrastructure Development must be one of the most challenging one for me. As I didn’t have any job experience on programming, I took much longer time than I expected on the environment setup and the compilation. Especially, I experienced the compatibility problems on incorporating mySQL and Ruby on Rails. I noticed that the workshop information is not updated consistently (Perhaps, it is part of the test). Thus, I spend extra time spending to do the troubleshooting work. Luckily, I can obtain the solution from Internet eventually. Otherwise, I will not be able to submit the assignment on time. I wish I could study more and participate more on group discussion but I was already overwhelmed by the exercises and workshops. Above all, it is still a very useful and interesting subject to study and it is recommended.

Monday, May 24, 2010

Workshop 8: Ruby on Rails Workshops Report and Evaluation

Topic objectives

Upon the completion of this workshop, developers or managers should be able to:

· Identify and evaluate the Ruby on Rails workshop series
· Think critically and analytically about what you knew before and after the experiences
· Share and post your Report and Evaluation with peers via the subject forum.

Evaluation and Report

Please answer each question in this evaluation section. In your answer, please consider content/topics presented and the technologies and teaching strategies used during the Ruby on Rails Workshops. Results will be collated and used to modify the workshop series.
This form is just a format guide to you evaluation and report. Thank you for your time to complete workshop 8.

1. List what you consider to be the three strengths of Ruby on Rails workshop series

I consider the 3 strengths to be:
i.) The course material is up-to-date and using technology which is industrial standard. This is very helpful to our career.
ii.) The workshops are in step-by-step format which is easy to follow like laboratory session especially good for overseas students always need to study and work alone.
iii.) The open source environment of ROR and my mySQL makes easy for students to setup their development platform at home without any cost.


2. List what you consider to be the three weaknesses of Ruby on Rails workshop series:

I consider the 3 weaknesses to be:
i.) The workload for this program may be too harsh and task oriented. Students may not have enough time to study thoroughly what they are doing and participate more on the discussing with the group.
ii.) The resource link may not be updated and some of the update on the source code may not be consistent which needs extra time for students to troubleshoot the problem in order to finish the workshop.
iii.) Difficult for RED team to interact with BLUE team especially for overseas students. Not much collaborative effort could be done within the team to speed up the learning.


3. List what aspects of Ruby on Rails workshop series that you found to be most difficult.

The most difficult aspects were getting the OTBS system working. As it includes implementing the infrastructure environment which already takes quite a long time before the environment is ready for development. There are also compatible issues between different versions of ROR application and different versions of mySQL library as it is not mentioned in the workshop. One of the most difficult parts should be getting the Ruby environment ready and successfully connected to the database. Writing and verifying the code is another difficult and time consuming task as I do not have any code composer and debugger for ROR. All troubleshooting requires me to have throughout knowledge and break down my work to small pieces in order to get problems isolated and fixed one by one.


4. List what improvements could be made to the Ruby on Rails workshop series:

Improvements I would make includes work more closely with my RED team members and makes our learning more collaborative which could speed up the process and to know more ways to accomplish our tasks. Also I would read more and explore more including more background studies if I could have extra time during the workshop.


Free response and reflective questions:

5. Reflect on your experiences with the other Web framework used in this subject: Was it effective? How can it be improved? Should other Web frameworks be used as well or instead of Ruby on Rails?

I found Ruby-on-Rails is a packaged framework, although not very user-friendly but it is not difficult to setup with proper guidelines as there are always new versions and there exists compatible issues with other applications. The application version we are required to use in order to finish the workshop should be recommended by the tutor or in the guidelines. As I do not have any programming experience in my career (except some scripting) and so I could not give any comparison for any other Web framework with ROR. Hope some programmers would give more valuable comment here.


6. Did the Developer’s or IT managers Team that you joined after workshop 4 have a preference towards using other tools to facilitate collaboration? Comment on the differences between these use of the sub-forum or Interact wiki tools from your experiences in this subject.


7. Further comments to add?

Would really appreciate if the instructions in the workshops are more accurate which would save students more time for study or explore something outside the topic. Reduce number of tasks or change some tasks into which must be accomplished by a team of 2 would greatly enhance collaborative learning.

Saturday, May 22, 2010

Exercise 16: System Integration

What to do:

The final topic is for group reflective study using the wiki too in CSU Interact and a way for you to add a final reflective comment on systems integration and making your closing remarks to our Developer’s blog.

1. Choose ONE of the four ways to manage and develop integrated systems as listed below;

I would choose service-oriented architectures (SOA) to manage and develop integrated systems as it is more agile and responsive to business’s changing requirements. It enables efficiency through interactions and collaboration using portals.


2. Summarize your understanding and describe its relevance (250 words max) in either your study at university or in your work environment;

SOA is best approached as individual projects - each of which bring your business greater flexibility and service orientation. Successful SOA adoption is done incrementally stressing the importance of starting small, and scaling appropriately.

To move your organization toward greater service orientation, you need to take a balanced approach to building versus buying. To create the infrastructure for an SOA, you'll need the right commercial off-the-shelf software that complements (rather than replaces) your existing IT infrastructure. This is a “buy” statement. On the “build” side, you may also choose to access know-how and hands-on involvement to use these software products effectively and get the most out of them. This infrastructure and the associated tools can help you create the business services that run on your SOA. Again, there is some “building” associated with this. So the real answer is that you need a certain measure of both building and buying.


SOA helps create greater alignment between IT and line of business while generating more flexibility - IT flexibility to support greater business flexibility. Your business processes are changing faster and faster and global competition requires the flexibility that SOA can provide. SOA can help you get better reuse out of your existing IT investments as well as the new services you're developing today. SOA makes integration of your IT investments easier by making use of well-defined interfaces between services. SOA also provides an architectural model for integrating business partners’, customers’ and suppliers’ services into an enterprise’s business processes. This reduces cost and improves customer satisfaction.


3. Edit TWO similar versions (include bibliography) of that summary to CSU Interact:
a.) post version A as a wiki page contribution;



b.) add version B as a final entry to close your developer’s blog

SOA is best approached as individual projects - each of which bring your business greater flexibility and service orientation. Successful SOA adoption is done incrementally stressing the importance of starting small, and scaling appropriately.

To move your organization toward greater service orientation, you need to take a balanced approach to building versus buying. To create the infrastructure for an SOA, you'll need the right commercial off-the-shelf software that complements (rather than replaces) your existing IT infrastructure. This is a “buy” statement. On the “build” side, you may also choose to access know-how and hands-on involvement to use these software products effectively and get the most out of them. This infrastructure and the associated tools can help you create the business services that run on your SOA. Again, there is some “building” associated with this. So the real answer is that you need a certain measure of both building and buying.


SOA helps create greater alignment between IT and line of business while generating more flexibility - IT flexibility to support greater business flexibility. Your business processes are changing faster and faster and global competition requires the flexibility that SOA can provide. SOA can help you get better reuse out of your existing IT investments as well as the new services you're developing today. SOA makes integration of your IT investments easier by making use of well-defined interfaces between services. SOA also provides an architectural model for integrating business partners’, customers’ and suppliers’ services into an enterprise’s business processes. This reduces cost and improves customer satisfaction.




Reference

IBM. (2010). Service Oriented Architecture (SOA) Entry Points. Retrieved at 18, 2010, from http://www-01.ibm.com/software/solutions/soa/entrypoints/information.html?S_TACT=&S_CMP=

IBM. (2010). Service Oriented Architecture – SOA. Retrieved at 18, 2010, from http://www-01.ibm.com/software/solutions/soa/faqs.html#4

Tuesday, May 18, 2010

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.

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 services can be used in a variety of contexts, such as health, work, personal life, etc. LBS services include services to identify a location of a person or object, such as discovering the nearest banking cash machine or the whereabouts of a friend or employee. LBS services include parcel tracking and vehicle tracking services. LBS can include mobile commerce when taking the form of coupons or advertising directed at customers based on their current location. They include personalized weather services and even location-based games. They are an example of telecommunication convergence.

Some examples of location-based services are:
· Requesting the nearest business or service, such as an ATM or restaurant
· Turn by turn navigation to any address
· Locating people on a map displayed on the mobile phone
· Receiving alerts, such as notification of a sale on gas or warning of a traffic jam
· Location-based mobile advertising
· Asset recovery combined with active RF to find, for example, stolen assets in containers where GPS wouldn't work

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

The mission of the Open Mobile Alliance is to facilitate global user adoption of mobile data services by specifying market driven mobile service enablers that ensure service interoperability across devices, geographies, service providers, operators, and networks while allowing businesses to compete through innovation and differentiation

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


The main components for mobile web services framework are first the direct wireless connection from the clients via the mobile network operators to the mobile web server. Second, is the mobile web server running mobile web service to handle the requests from mobile clients. Third, is the mobile application developed by any framework language such as Microsoft .Net or Sun J2ME, which mobile service providers can configure their mobile services on the mobile web server.


4. Visit an airline Web site and search for 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?

Visited the Cathaypacific.com which is the leading airline in Hong Kong (http://www.cathaypacific.com/cpa/en_INTL/manageyourtrip/cxmobile) . It provides 3G mobile application called CX Mobile Application which allow users to check-in, check for flight schedule and status. It supports for both Chinese and English and for every mobile brand.

As we compare the mobile service provide by airlines and banking, we would find they are very similar in nature. Both of them provide service to customers all over the world. They also require to handle sensitive information of customers and transactions. However, they also have differences like airlines do not have as many branches as banks and would more reply on agents and Internet web services. Also, airlines handle request 24 hours a day while banks would carry forward the request to next business day if it is outside office hour.



Reference

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

OMA. (2010). OMA Mission. Retrieved at 8 May, 2010 from, http://www.openmobilealliance.org/

S. El-Masri & B. Suleiman. (2005). A Framework For Providing Mobile Web Services. Retrieved at 8 May, 2010, from http://www.it-innovations.ae/iit005/proceedings/articles/D_1_IIT05_Elmasri-1.pdf

Sunday, May 16, 2010

Workshop 7: End of the Line: production site migration and maintenance

Topic objectives

Upon the completion of this workshop, developers or managers should be able to:
· Discuss and choose the Rails production deployment configuration;
· Identify and evaluate the ways to take move the development site on your computer to the online production site;
· Evaluate and devise how to integrate a new Rails site into an existing or future e-commerce structure;
· Conclude the development of the OTBS as a Ruby on Rails application;
· Think critically and analytically about the policy for site maintenance and further development.
· Share your findings with your peers and examine what the other team is doing.

Topic reading from Safari Books Online

Hartl, M & Prochazka, A, (2008). RailsSpace: Building a Social Networking Website with Ruby on Rails, Pearson Education

This workshop continues to use your reading of the ‘RailsSpace’ online book and use of other online sites.

Both teams of developers and IT managers examine the Rails application deployment considerations as described at http://rubyonrails.org/deploy and in Chapter 17 of ‘RailsSpace’. This raises issues around which advice to follow in the migration of the Online Taxi Booking Service to the production site. Both teams consider which deployment and maintenance procedures to adopt.

Focus Question

As either a developer or as an IT manager, what are the options available when deploying and maintaining the Ruby on Rails application online?

Discussion Notes

We need to look for ways to automate the migration to the production site while keeping the configuration simple. This is a reminder of the earlier work on the ‘convention over configuration’ aspects of using Ruby on Rails. As a pre-requisite, developers will need to know about using Linux (or other UNIX variant) and its bash shell with sudo (admin) access and Subversion for version control. You should know where the logs for each piece of software running in your Rails application for fixing bugs.

When it comes to issues like scalability then the use of mongrel clusters and Linux for the OTBS on Rails handle scaling up well, but other options exist.

Here are a few to consider to automatically deploy and manage of the back end of your Rails application:

Phusion Passenger (modrails.com) aka mod_rails – a module for Apache
Jumpbox (jumpbox.com/app/rubyonrails) Ubuntu Linux environment
JRuby for J2EE using Glassfish and Warbler
IronRuby under .NET runs Rails and make use of the .NET libraries as you build the OTBS on top of ASP.NET or ASP.NET MVC

Tools like Mongrel (mongrel.rubyforge.org), Mongrel Cluster and version management systems like Subversion or Capistrano (capify.org) help with simplification and automation if used. Zed Shaw wrote Mongrel in 2006 as a Ruby Web server that converts a HTTP request to a CGI loading of the Ruby interpreter and this required less steps than using Apache and a faster performing Web server.

See mongrel.rubyforge.org/docs/apache.html for linking Apache to a Mongrel cluster.

Mongrel cluster is a gem install that runs several Mongrel processes under the same configuration issued by a proxy server like Nginx (nginx.net). Nginx is another simpler Web server that will handle the incoming HTTP requests either by itself or by proxying the those requests to the Mongrel processes in the cluster. Monit (mmonit.com/monit/) can be used to control process management.

Which way you choose to go will most likely depend upon:

The user interface and your own skills;
How quickly you are guided through deployment by admin tools that simplify management of the system;
System back-up, data security, virtualization and portability features:
Future-proofness: (grid computing or a cloud computing service);
How much time and money is saved by an efficient deployment and maintenance schedule.
Now move on to your team’s thread for a last time before workshop 8…


DEVELOPER’S THREAD (RED team)

To Do:

Developers conclude their work with the OTBS and look at the options for deployment of the site. Examine the various platforms/software tools used for deployment such as UNIX environment suggested in the Discussion Notes, Mongrel or Mongrel cluster, Nginx, Subversion or Capistrano (during development stage), JRuby in the Java environment.



Which way?

The choice is up to you as this workshop present just one option and you may like to use another, such as deploying the OTBS in a .NET or J2EE environment

For this project, we are suggested to use Ruby on Rails which is one of the many object oriented programming which is an open source web application framework in the market. With the deployment of another free database mySQL, which incorporate very well with into ROR that forms a strong and easy to use platform for developing e-commerce website on the fly.



Can you get the OTBS Running in production mode as a minimal production server?

Share your success by posting progress comments and links etc to the Developers sub-forum site that has been set up for the Red team.

To start with all these development work, I need to first install Ruby-on-Rails by install the RubyGems package. In order to get ROR working it is required to have RubyGems 1.3.6 installed as a package on my laptop which is running Windows XP and goes through all the update process.

For the database part, I used the most generic mySQL to avoid anything goes wrong. However, it still required to modify the config files and copy the dll libraries to solve compatibility issues before Ruby can successfully connect to the database and these takes me the longest time to troubleshoot as there is no single source to solve all these problems.

To get the OTBS running, the minimal requirement is to get the database setup properly and connect with Ruby successfully. The other steps like generating the models, generating the controllers and views are some basic and generic steps which you may find much easier and there are many tutorials or sample coding which are helpful on the web. Incorporating the code would be also very time consuming so you may require to break down the work into small pieces as function for easier fault isolation and troubleshooting.

Wednesday, May 12, 2010

Exercise 14: Searching mechanisms, Virtual worlds and Cyberagents

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

Spiders are programs that can visit Web sites and follow hyperlinks. By using a spider, you can quickly map out all of the pages contained on a Web site. It is sometimes named as web crawling or spidering, in particular search engines, use spidering as a means of providing up-to-date data. Web crawlers are mainly used to create a copy of all the visited pages for later processing by a search engine that will index the downloaded pages to provide fast searches. Crawlers can also be used for automating maintenance tasks on a Web site, such as checking links or validating HTML code. Also, crawlers can be used to gather specific types of information from Web pages, such as harvesting e-mail addresses.

2. Differentiate the various types of software agents.

We could identify seven types of agents:
• Collaborative agents
• Interface agents
• Mobile agents
• Information/Internet agents
• Reactive agents
• Hybrid agents
• Smart Agents

Agents may be classified by their mobility, i.e. by their ability to move around some network. This yields the classes of static or mobile agents. They may be classed as either deliberative or reactive.
Deliberative agents derive from the deliberative thinking paradigm: the agents possess an internal symbolic, reasoning model and they engage in planning and negotiation in order to achieve coordination with other agents.
Reactive agents act using a stimulus/response type of behaviour by responding to the present state of the environment in which they are embedded.
Autonomy refers to the principle that agents can operate on their own without the need for human guidance, even though this would sometimes be invaluable. Hence agents have individual internal states and goals, and they act in such a manner as to meet its goals on behalf of its user.
Lastly, for agent systems to be truly ‘smart’, they would have to learn
as they react and/or interact with their external environment. We could have static deliberative collaborative agents, mobile reactive collaborative agents, static deliberative interface agents, mobile reactive interface agents, etc.

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

Agent solutions are being applied to or investigated include workflow management, network management, air-traffic control, business process re-engineering, data mining, information retrieval/management, electronic commerce, education, personal digital assistants (PDAs), email, digital libraries, command and control, smart databases and scheduling/diary management.

4. Computing ethics and bot programming case study: rocky
a) Get an account username and password from lecturer to LC_MOO at http://ispg.csu.edu.au:7680/ and login to the Welcome Lobby.

Logon with account train7 but get the following screen without the left panel for typing message.



b) Hold a 5-minute discussion with Rocky on a specific topic. Commands and chat are entered in the command box (bottom-left of screen in Figure 11) act rocky (start bot) hush rocky (stop bot)

As I failed to interact with command with Rocky even I tried reinstall Java. So I go to CSU forum if any mates out there got the same problem and thanks to Zoe who provides a link to an Eliza running on Java and so I could have a 5-minute discussion experience with a bot.

http://www.chayden.net/eliza/Eliza.html

>> Hello.
How do you do. Please state your problem.
>> do you know what is Eliza?
We were discussing you -- not me.
>> I want to know more about you
What would it mean to you if you got to know more about I ?
>> so you mean you are human?
What makes you think I am human ?
>> or you think you are better than human?
Does it please you to believe I am better than human ?
>> how long you have been staying awake?
Why do you ask ?
>> can you introduce yourself?
You believe I can introduce myself don't you ?
>> yes
You seem to be quite positive.
>> do you know what time is it?
Oh, I know what time is it ?
>> what's the time?
I'm not sure I understand you fully.
>> are you a robot answering with pre-defined answers?
Why are you interested in whether I am a robot answering with pre defined answers or not ?
>> please don't repeat my questions...
Your questions ?
>> tell me your name
I am not interested in names.
>> what is your name?
I've told you before, I don't care about names -- please continue.
>> you are so rude...
Do you sometimes wish you were so rude ?
>> bye
Goodbye. Thank you for talking to me.


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

ELIZA bot is a computer program that responds to some pre-defined commands which simulates human-like interaction. If the question asked is out of its knowledge, it would still respond as invalid to users. We could also define new commands and actions into such system.



Reference

Gamelan. (2010). Programming a Spider in Java. Retrieved at 28 Apr, 2010, from http://www.developer.com/java/other/article.php/1573761/Programming-a-Spider-in-Java.htm

Wikipedia. (2010). Web crawler. Retrieved at 28 Apr, 2010, from http://en.wikipedia.org/wiki/Web_crawler

Nwana, H. S. (1996). Sofware Agents: An Overview. Retrieved at 28 Apr, 2010, from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.129.3064&rep=rep1&type=pdf

Saturday, May 8, 2010

Exercise 13: Shopping cart specifications

Develop the class diagram for the following shopping cart specifications:

A shoppingCart object is only associated with 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.






Reference

Wikipedia. (2010). Class Diagram. Retrieved at 8 May, 2010, from http://en.wikipedia.org/wiki/Class_diagram