What this Blog is About
Friday, June 26, 2009
Ruby Use on the rise
http://blog.internetnews.com/skerner/2009/06/report-ruby-use-on-the-rise.html
Tuesday, June 23, 2009
Workshop 8: Ruby on Rails Workshops Report and Evaluation
- List what you consider to be the three strengths of Ruby on Rails workshop series
- Ruby is probably a language that once you "get it" it all falls in to place. The MVC and convention over configuration means that you dont have to go looking in obscure places to find the answers to error situations. It means that application maintenance should be made simpler.
- Exposure to the Ruby way of doing things.
- ?? Due to the frustration experienced with development and the lack of overall workshop focus I find it very difficult to find anything that would qualify as a strength. Although it is feasible that I could use my experiences in the workshops as a reason not to use Rails as an application development environment
- List what you consider to be the three weaknesses of Ruby on Rails workshop series:
- There was a distinct lack of focus throughout the workshop series. It seemed to be heading in a certain direction for the first 4 workshops, but then at workshop 5 a complete change in tack occurred. The first 4 workshops should be removed. If you start with workshop 5 and go through the RailsSpace book and develop the OTBS application in conjunction.
- The development of the OTBS did not seem to have any real relevance to the rest of the subject matter. The Workshops should be redefined so that the development of the application corresponds to the learning outcomes being investigated in the topics.
- Their was little scope for collaboration with other students within the workshops. As I mentioned in an earlier blog their is scope to include a project manager from a project management subject to cross pollinate the learning outcomes for students, and to improve the collaboration aspect.
- List what aspects of Ruby on Rails workshop series that you found to be most difficult.
- List what improvements could be made to the Ruby on Rails workshop series:
- A VM should be developed so that all students start off on the same foot.
- The references to other frameworks could be removed.
- All the students have a programming background(?), and as such do we really need to compare looping structures or suyntax of different languages?
- It has a defined goal with some KPIs that need to be met as students progress.
- The workshop content should involve aspects of the topic being examined to more closely tie in with the subject objectives.
- their should be more of a project managed feel about the workshops so that we dont miss our targets
- 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?
- 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.
- Further comments to add?
Getting Ruby installed and operational. I found it hard to find any useful installation information initially. I am sure that there is lots of documentation in existence, but asking the right question proved to be difficult. Also the fact that i was trying to install in a windows environment proved frustrating. I resorted to creating a Windows XP VM to host my APTANA development environment. Once the software infrastructure was in place everything was OK.
The workshop series should be redesigned so that:
My immediate response to this question is what other frameworks? Did we actually use another framework. And if we did when? If this is referring to the few questions that were used in php, then I think it is simply irrelevant.
The experince could definitely be improved if a virtual machine was provided that had the framework already set up. I dont think that anything of real value is learnt by all students being in the dark and having to install and test various servers and hope that everything works. Everyones machine is different, and so they all have to spend a large block of time getting up and running. A VM would solve this problem by everyone starting off on the front foot.
There was little if any collaboration. This is primarily due to the time constraints imposed by the topic Q&A and the workshops. There is simply not enough time to get through the volume of work expected, and collaborate as well.
The forums were the best spot for eliciting information from other students if required.
It may not necessarily seem that I enjoyed the Workshop series. This is not actually the case. I did find that developing in Ruby was enjoyable to a point. However this was generally overbalanced by the frustration felt when things didnt work out correctly. Learning a new language and development paradigm is an experience to be savoured. But it is very easy to be turned off and things to sour when brick walls seemingly appear. The DRY principle is espoused by the Rails community, but that is probably what I failed at the most. I think that my final tally for creating the Online Taxi Booking System was probably somewhere upward of 20. That is I started from scratch in excess of 20 times.
Workshop 7: End of the Line: production site migration and maintenance
Workshop 6: Enjoying the Ride: Web framework alternatives, scalability and flexibility
- Discuss and analyse the latest Web framework technologies based upon experiences so far with Ruby on Rails
- Identify and evaluate challenges and opportunities concerning the use of the latest Web 2.0 technologies and to ‘benchmark’ (compare) other alternatives
- Discuss and evaluate current Ruby on Rails framework and the alternative emerging technologies.
- Evaluate and devise scalability, flexibility, capacity planning and performance testing strategies for conducting e-commerce.
- Deploy Web 2.0 or later technology in their business environments such as the ideas and methods of the ‘RailsSpace’ approach to the OTBS
- Think critically and analytically when exposed to new technologies.
- Share your findings with your peers and examine what the other team is doing.
- generate a controller and an action by adding a method(s) to a controller
- create a view template for each action and to link to actions from views
- use AJAX to improve the user experience
Workshop 5: Part C: Screen layouts and forms processing with text fields, check boxes, radio buttons and multiple list controls
- Create a new application called cabs in the same projects directory to demonstrate the use of an active view. > rails cabs > cd cabs
- Create a controller called Vehicle in cabs\app\controllers cabs> ruby script/generate controller Vehicle
- Add an action to vehicle_controller.rb as the method called cabtype class VehicleController< ApplicationController def cabtype end end
- Add a view template - cabs\app\views\vehicle\cabtype.rhtml We will edit this view in later steps but you may like to add your own test HTML code to the view at this stage.
- Save the view and restart the Web server and navigate to http://localhost:3000/cabs/cabtype
- Create a file in the public directory - \cabs\public called input.html
- Edit the vehicle_controller.rb here is a start. The data in each form element in the Rails application can be accessed via its name and a hash called params class VehicleController< ApplicationController def cabtype @data1 = params[:text1] @data2 = params[:check1] @data3 = params[:radios1] @data4 = params[:building1] end end
- Edit the view template cabtype.rhtml
- Start the Web server and go to the opening page of this application at http://localhost:3000/input.html
- Submit the forms data. What do you find?
Complete
Complete
Complete
Complete
Navigated to http://127.0.0.1:3004/vehicle/cabtype
Done this
Done this
Done this
Did this and had a horrible looking screen. If you just do a cut and paste from a word file the quotes play up just a little bit. This leads to a horrible looking screen rendering. Having done this Craigs mention of this problem comes to light. Should have been a touch more careful, and validated what i copied a bit more. But lesson hopefully learnt. Took but a matter of moments to rectify and have the screen render nicely.
I get a rather horrible screen that screams ActionController::InvalidAuthenticityToken at me. This is obviously security related. Looked in Application Controller and noticed the second line "protect_from_forgery".
Hashed this out.
Kept getting response, No route matches "/cabtype" with {:method=>:post}
This led me to change the Submit action on the input form to "vehicle/cabtype"
Unfortunately this still did not work. After a few minutes of scratching my head I did the brute force approach and recreated the project. Here was the whole COC conversation that happened on the forums all over again. But brute force worked.
Workshop 5:Part B: The active view: passing data from an action too a view
- Create a new application called scenery in the same projects directory to demonstrate the use of an active view. > rails scenery > cd scenery
- Create a controller called Demo in scenery\app\controllers scenery> ruby script/generate controller Demo
- Add an action to demo_controller.rb as the method called rubycobe class DemoController< ApplicationController def rubycode end end
- Add a view template - scenery\app\views\demo\rubycode.rhtml We will edit this view in later steps but you may like to add your own test HTML code to the view at this stage.
- Save and restart the Web server and navigate to http://localhost:3000/scenery/rubycode If I was to follow the script blindly then one of two things will happen here.
- I have made a mistake or
- the workshop script is wrong
- Use the Time.now example to pass data from an action to a view.
- Modify and save the rubycode action with a value for the time instance variable in the DemoController class in app\controllers\demo_controller.rb class DemoController< ApplicationController def rubycode @time_now = Time.now end end
- Then modify and save the corresponding view template in \app\views\demo\rubycode.rhtml by adding a call by reference to the action’s instance variable: <_br> The time is <_%= @time.now %_> <_br>
- Restart the Web server and navigate the browser to http://localhost:3000/demo/rubycode Data has been passed from the action to the view as it is done with SQL requests. The instance variables of a Ruby class are available to view templates by referencing the action’s instance variables by name in the view .rhtml template.
Complete
Complete
Complete
Complete
If I navigate to the url
../scenery/rubycode
I get the error Routing Error.
However if I do the logical thing and navigate to
../demo/rubycode
then I get my expected page returned.
Done that
Obviously this piece of code is wrong. We should be using the variable defined in the controller @time_now
The output and the code files are shown below
Workshop 5: Part A: Viewing the action
- Create the Rails application framework in the projects folder: C:\InstantRails\...\projects\>rails animals
- Running the application on localhost:3000 using the WeBrick ruby server (or Mongrel as alternative) and access via Web browser at http://localhost:3000/
- Create the controller to make the application do an action. This is under the controller-action/model-view structure. Stop the WEBrick server each time you edit Ruby classes and then re-start or refresh the views you are testing. Use the Ruby command below: >ruby script/generate controller Mammal The mammal_controller.rb contains just a bare class description: class MammalController< ApplicationController end and the ApplicationController class inherits from ActionController::Base class in the ActionController module under Rails.
- Test the controller by starting the WEBrick server and navaigatibng the browser to http://localhost:3000/mammal Note how the controller name is appended to the end of the URL and that no action resulted because there are no controller methods.
- Create an action by editing and saving the mammal_controller.rb class in projects\animals\app\controllers using your text editor to add the method below: class MammalController< ApplicationController def breathe end end
- Start the WEBrick server and browse at http://localhost:3000/mammals/breathe where you will get a “missing template” message since it is missing a view for the breathe method. Rails is trying to connect the breathe method action of the mammal controller to a view, by using the action’s name – breathe. This view template is created as breathe.rhtml and stored in the \projects\animals\views\mammal directory.
- Create and save a view in that directory by using a text editor to create a view called breathe.rhtml <_html> <_head> <_title>Breathe Easy <_body>Inhale and Exhale Restart the WEBrick serve r and browse again at http://localhost:3000/mammals/breathe
- Try Ruby code and HTML in the action view by using the <%....%> wrapper around the inserted Ruby code. Here are some snippets to try from workshop 4:
5 + 6 =<%= 5 + 6 %>
=<% 4.times do %> Inhale Exhale
<%end%>
Time is <%=Time.now %> The output of this little exercise is
NOTE: in practise you normally perform calculations in the action (method) and pass the results to the view.
Complete
Complete
I get the following:
Routing Error No route matches "/mammals" with {:method=>:get}I think this is simply because I coulnt follow instructions and typed /mammals rather than /mammal.
Complete
Browsed to ../mammal/ and got the following message
Unknown action No action responded to index. Actions: breatheSo added the action /mammal/breathe and got the expected result.
Workshop 5: Admiring the scenery
- To reflect on what has been done so far with Ruby on Rails
- To reflect on my role and decide to continue as EITHER a Developer OR as an IT infrastructure manager
I will be continuing the workshops in the role of a developer. So I will be on the RED team.
Exercise 25: M-commerce and the e-wallet: Innovation and mobile devices
- What is meant by a location based service?
- Visit an airline Web site and search for information on WAP or SMS access to booking airline services. Do the same for WAP or SMS services in banking. How do both industries compare?
- keep an eye on all Olympic Airlines Flights
- Get information on Departures from and Arrivals at the Athens International Airport as if you were before the Flight Information Display at the airport
- Check your actual miles if you are a member of our Frequent Flyer program
- book flights
- Check Flight status
- Check In
- Cancel Flights
- view schedules
- etc
- Lucent Technologies designs and delivers the systems, services and software that drive next-generation communications networks at: http://www.lucent.com
- Visit the W3C website and find the status of the VoiceXML project. When do you think it will affect business on the Web and what will its impact be?
- Investigate CDMA, GSM or other network technologies for mobile phones and circuit-switched and packet-switched data capabilities.
- According to Nokia:
“The Nokia One Mobile Connectivity Service provides easy and secure access to email, calendar, directory and more from a mobile phone, PDA, PC or fixed-line phone - take your corporate applications mobile.”
Why is a company like Nokia – http://www.nokia.com – described as having end-to-end expertise? - conduct the research
- identify the opportunitiesfor innovation
- specify the solutions
- implement your plans
- evolve your services portfolio
According to (Wikipedia) 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 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.
Olympic Airways provides a wap service at http://www.olympic-airways.gr/wap to allow users to
Southwest Airlines utilises WAP http://mobile.southwest.com/ which allows passengers to
Apparently at some time prior to 23 October 2004 Westpac had WAP banking services enabled. However according to an article on ITWire on 13 October 2004 http://www.itwire.com/content/view/182/2/ from 23 October 2004, "the Westpac banking site will no longer support wireless application protocol (WAP) internet banking through your mobile phone"
Until recently according to (AustralianIT) mobile banking services have not been provided by Australian banks. They had provided services in the earlier parts of the decade but closed them down in mid to late 2004 due to poor patronage. But things seem to have turned the corner with the banks now re entering the mobile market.
According to http://www.alcatel-lucent.com/wps/portal/aboutusAlcatel-Lucent is the trusted partner of service providers, enterprises and governments worldwide, providing solutions to deliver voice, data and video communication services to end-users.
A leader in fixed, mobile and converged broadband networking, IP technologies, applications and services, Alcatel-Lucent leverages the unrivalled technical and scientific expertise of Bell Labs, one of the largest innovation powerhouses in the communications industry
The current standard for VoiceXML is v2.1 which was released on 19 June 2007. The current working draft as at 2 June 2009 is Voice Extensible Markup Language (VoiceXML) 3.0
According to (Wikipedia) Code division multiple access (CDMA) is a channel access method utilized by various radio communication technologies.One of the basic concepts in data communication is the idea of allowing several transmitters to send information simultaneously over a single communication channel. This allows several users to share a bandwidth of frequencies. This concept is called multiplexing. CDMA employs spread-spectrum technology and a special coding scheme (where each transmitter is assigned a code) to allow multiple users to be multiplexed over the same physical channel. By contrast, time division multiple access (TDMA) divides access by time, while frequency-division multiple access (FDMA) divides it by frequency. CDMA is a form of "spread-spectrum" signaling, since the modulated coded signal has a much higher data bandwidth than the data being communicated
(Wikipedia) suggests that GSM (Global System for Mobile communications: originally from Groupe Spécial Mobile) is the most popular standard for mobile phones in the world. GSM differs from its predecessors in that both signaling and speech channels are digital, and thus is considered a second generation (2G) mobile phone system. This has also meant that data communication was easy to build into the system. Newer versions of the standard were backward-compatible with the original GSM phones. For example, Release '97 of the standard added packet data capabilities, by means of General Packet Radio Service (GPRS). Release '99 introduced higher speed data transmission using Enhanced Data Rates for GSM Evolution (EDGE).
According to (Nokia) it takes innovation to win new business. Yet by its nature, innovation is hard work. The promise of a novel service is fulfilled through a complete understanding of all its components.
Nokia Siemens Networks, in collaboration with our parent companies Nokia and Siemens, offer end-to-end expertise and capabilities to create seamless, personalized end-user experiences delivered by streamlined business and network solutions.
We offer five key steps to create competitiveness through end-to-end innovation:
References
The Australian IT. Suncorp dials into mobile banking. Retrieved 19 July 2009, from http://www.australianit.news.com.au/story/0,24897,25194759-24169,00.html
Nokia Siemens Networks. End to end expertise. Retrieved 27 July 2009, from http://www.nokiasiemensnetworks.com/cn/Insight/end-to-end/end-to-end-expertise.htm?languagecode=en%20topic%20End-to-end%20expertise%20-%20our%20offering
Wikipedia. Location-based service. Retrieved 14 July 2009, from http://en.wikipedia.org/wiki/Location-based_service
Wikipedia. Code division multiple access. Retrieved 19 July 2009, from http://en.wikipedia.org/wiki/Code_division_multiple_access
Wikipedia. GSM. Retrieved 19 July 2009, from http://en.wikipedia.org/wiki/GSM
Exercise 24: Virtual business worlds and cyberagents
- Describe what software agents are.
- Differentiate the various types of software agents.
- Autonomous agents Autonomous agents are software agents that claim to be autonomous, being self-contained and capable of making independent decisions, and taking actions to satisfy internal goals based upon their perceived environment.
- Distributed agents Since agents are well suited to include their required resources in their description, they can be designed to be very loosely coupled and it becomes easy to have them executed as independent threads and on distributed processors. Thus they become distributed agents and the considerations of distributed computing apply. Agent code is particularly easy to implement in a distributed fashion and should scale well
- Multi-agent systems When several agents (inter)act they may form a multi-agent system a.k.a. multiple-agent system. Characteristically such agents will not have all data or all methods available to achieve an objective (this can be referred to as "limited viewpoint") and thus will have to collaborate with other agents. Also, there may be little or no global control and thus such systems are sometimes referred to as swarm systems. As with distributed agents, data is decentralized and execution is asynchronous
- Mobile agents Agent code that moves itself, including its execution state, on to another machine, to continue execution there. This is also referred to as mobile code. Agents can be used to gather system information, taking back-up of files by copying them in client-server paradigm, monitoring network throughput or to check resources availability and moderating the resource utilization of system by checking the services running on system
- Fuzzy agents In computer science a fuzzy agent is a software agent that implements fuzzy logic. This software entity interacts with its environment through an adaptive rule-base and can therefore be considered as a type of intelligent agent.
- Describe how techniques such as artificial intelligence and statistical techniques are used in software agents.
- List popular software agents currently in use in the commercial world.
- http://www.amazon.com/makes recommendations on what you might like to buy, based upon previous enquiries.
- NASA's Jet Propulsion Laboratory has an agent that monitors inventory, planning, and scheduling equipment ordering to keep costs down.
- Allstate Insurance has a network with thousands of computers. The company uses a network monitoring agent from Computer Associates International called Neugent that watches its huge networks 24 hours a day. Every five seconds, the agent measures 1200 data points and can predict a system crash 45 minutes before it happens.
- Google has agents that analyse web browsing trends and provide targeted advertising.
- Identify various activities in e-commerce where software agents are currently in use.
- Buyer agents or shopping bots
- User or personal agents
- Monitoring and surveillance agents
- Data mining agents
- Car insurance Quotes.
- Travel and Holiday comparison portals eg FlightCentre
According to (Wikipedia) , a software agent is a piece of software that acts for a user or other program. Such "action on behalf of" implies the authority to decide which (and if) action is appropriate. The idea is that agents are not strictly invoked for a task, but activate themselves.
(Wikipedia) identifies the following types of software agents:
(Wikipedia)In artificial intelligence, an intelligent agent (IA) is an autonomous entity which observes and acts upon an environment (i.e. it is an agent) and directs its activity towards achieving goals (i.e. it is rational). Intelligent agents may also learn or use knowledge to achieve their goals.
Intelligent agents are also closely related to software agents. For example, autonomous programs used for operator assistance or data mining (sometimes referred to as bots) are also called "intelligent agents".
As software agents have an autonomous role, they need to be able to make decisions. Statistical techniques are used to devise the decision model that the agent will use. As the agent learns, the statistical model is refined by the agent so that the decisions it makes better fit with expectations.
It is suggested (Wikipedia)that there are 4 essential types of intelligent software agents:
Examples of using software agents include:
References
Car insurance Quotes. Free Resources: software agents. Retrieved 14 July 2009, from http://www.autocarinsurancebest.com/search.html?q=software+agents&submit=Search
Wikipedia. Intelligent agent. Retrieved 14 July 2009, from http://en.wikipedia.org/wiki/Intelligent_agent
Wikipedia. Software agent. Retrieved 14 July 2009, from http://en.wikipedia.org/wiki/Software_agent
Exercise 23: Searching mechanisms
- How do search engines such as Alta Vista differ from information directories?
- What is a spider? What does it do?
- Describe a search situation where the requirement for recall is high?
- What is a meta-search engine? Provide some examples.
- What is spamming?
- How can you get your site listed at major search sites; and how could you improve your site ranking?
- Submit your site
- add meta tags
- cultivate links to your site
- build a quality site
- keep your site fresh
- use a sitemap
I must admit that I was very surprised to see that altavista still had a presence on the web.http://www.altavista.com/ I guess it is debateable as to whether having a website constitutes a presence.
I seemingly remember that years ago it was one of the big few interfaces to the web, but now it just looks like the very poor mans google.Having said all that and having to search for the connections between Altavista, information directories, and this topic, (Wikipedia) provided the enlightenment. It turns out that AltaVista used a fast, multi-threaded crawler (Scooter) to trawl the net.
I am going to take a stab that an information directory is meant to represent a static information source, whereas AltaVista which used a crawler, could be thought of as a dynamic data source.
A spider is an automated software program used to locate and collect data from web pages for inclusion in a search engine's database, and to follow links to find new pages on the world wide web.(Eustace, p2)
I am having trouble defining exactly what this question is actually asking. I am going to take a stab that it is referring to the correllation between search terms and the returned results. The more relevant the result the higher the recall value. With this interpretation in mind, (Cole)relates Visualizing a high recall search strategy output for undergraduates in an exploration stage of researching a term paper. The abstract states that When accessing an information retrieval system, it has long been said that undergraduates who are in an exploratory stage of researching their essay topic should use a high recall search strategy; what prevents them from doing so is the information overload factor associated with showing the undergraduate a long list of citations. One method of overcoming information overload is summarizing and visualizing the citation list.
According to (Wikipedia)a meta-search engine is a search tool that sends user requests to several other search engines and/or databases and aggregates the results into a single list or displays them according to their source. Metasearch engines enable users to enter search criteria once and access several search engines simultaneously. Metasearch engines operate on the premise that the Web is too large for any one search engine to index it all and that more comprehensive search results can be obtained by combining the results from several search engines. This also may save the user from having to use multiple search engines separately.
Brainboost, ChunkIt!, Clusty, Dogpile, Excite, Harvester42, HotBot, Info.com, Ixquick, Kayak, LeapFish, Mamma, Metacrawler, MetaLib, Mobissimo, Myriad Search, SideStep, Turbo10, WebCrawler, DeeperWeb are all meta-search engines.
According to (Yahoo)Spam is any message or posting, regardless of its content, that is sent to multiple recipients who have not specifically requested the message. Spam can also be multiple postings of the same message to newsgroups or list servers that aren't related to the topic of the message. Other common terms for spam include UCE (unsolicited commercial email) and UBE (unsolicited bulk email).
According to (Yahoo) to get your site listed and improve your ranking do the following:
References
Cole C., Mandelblatt B., Stevenson J. Visualizing a high recall search strategy output for undergraduates in an exploration stage of researching a term paper (2002) Information Processing and Management, 38 (1), pp. 37-54.
Eustace K, Bots, agents, spiders and mobile computing. ITC382/ITC594/ITC565 Topic 10 lecture notes
Wikipedia. AltaVista. Retrieved 13 July 2009, from http://en.wikipedia.org/wiki/AltaVista
Wikipedia. Metasearch engine. Retrieved 13 July 2009, from http://en.wikipedia.org/wiki/Metasearch_engine
Yahoo!Help. How can I get my site listed in search engines? Retrieved 13 July 2009, from http://help.yahoo.com/l/us/yahoo/smallbusiness/webhosting/promote/promote-05.html
Yahoo!Help. What is spam? Retrieved 13 July 2009, from http://help.yahoo.com/l/us/yahoo/smallbusiness/bizmail/spam/spam-21.html
Exercise 22
- Use the coordination theory framework to describe the contribution of ERP software to organisational goals such as efficiency and flexibility.
- Differentiate between software systems such as Customer Relationship Management (CRM) software, Business-to-Business e-commerce programs and Supply-Chain Management (SCM) software.
- What are the limitations of the EDI platform? How does a web-based platform for inter-enterprise communication rectify these limitations?
- Describe the CRM Life Cycle and the different segments of CRM software.
- Customer Acquisition Contact management module and direct marketing module of CRM allow companies to effectively promote and market their products and services to prospects. Those modules help speed up the acquiring processes and reduce the cost of acquiring new customers.
- Customer Relationship Enhancements CRM helps companies better understand existing customers' needs and behaviors and enhance the profitability from existing customers by cross-selling. They can customize their products and services to individual customers' needs and preferences.
- Customer Retention Customer service module of CRM system gives the organizations the edge in customer support. They can increase customer satisfaction while reducing the cost of support. Customer retention is critical to the overall profitability of an organization. A customer you spend hundreds of dollars and months to acquire may leave you in seconds as a result of poor customer services.
- Front office operations — Direct interaction with customers, e.g. face to face meetings, phone calls, e-mail, online services etc.
- Back office operations — Operations that ultimately affect the activities of the front office (e.g., billing, maintenance, planning, marketing, advertising, finance, manufacturing, etc.)
- Business relationships — Interaction with other companies and partners, such as suppliers/vendors and retail outlets/distributors, industry networks (lobbying groups, trade associations). This external network supports front and back office activities.
- Analysis — Key CRM data can be analyzed in order to plan target-marketing campaigns, conceive business strategies, and judge the success of CRM activities (e.g., market share, number and types of customers, revenue, profitability).
(Wikipedia)defines Enterprise resource planning (ERP) is a company-wide computer software system used to manage and coordinate all the resources, information, and functions of a business from shared data stores.
An ERP system has a service-oriented architecture with modular hardware and software units and "services" that communicate on a local area network. The modular design allows a business to add or reconfigure modules (perhaps from different vendors) while preserving data integrity in one shared database that may be centralized or distributed.
(Wikipedia) defines Customer relationship management (CRM)as consisting of the processes a company uses to track and organize its contacts with its current and prospective customers. CRM software is used to support these processes; information about customers and customer interactions can be entered, stored and accessed by employees in different company departments. Typical CRM goals are to improve services provided to customers, and to use customer contact information for targeted marketing.
According to (Wikipedia) Business-to-business (B2B) describes commerce transactions between businesses, such as between a manufacturer and a wholesaler, or between a wholesaler and a retailer
Supply chain management software as defined by (Wikipedia) are tools or modules used in executing supply chain transactions, managing supplier relationships and controlling associated business processes.
According to (Wikipedia) Electronic Data Interchange (EDI) refers to the structured transmission of data between organizations by electronic means. It is used to transfer electronic documents from one computer system to another (ie) from one trading partner to another trading partner. It is more than mere E-mail; for instance, organizations might replace bills of lading and even checks with appropriate EDI messages
Often missing from the EDI specifications (referred to as EDI Implementation Guidelines) are real world descriptions of how the information should be interpreted by the business receiving it. For example, suppose candy is packaged in a large box that contains 5 display boxes and each display box contains 24 boxes of candy packaged for the consumer. If an EDI document says to ship 10 boxes of candy it may not be clear whether to ship 10 consumer packaged boxes, 240 consumer packaged boxes or 1200 consumer packaged boxes. It is not enough for two parties to agree to use a particular qualifier indicating case, pack, box or each; they must also agree on what that particular qualifier means
The Internet has provided a means for any company, no matter how small or where they are located in the world, to become part of a major supply chain initiative hosted by a global retailer or manufacturing company. Many companies around the world have shifted production of labour intensive parts to low-cost, emerging regions such as China and Eastern Europe. Web-based EDI, or webEDI, allows a company to interact with its suppliers in these regions without the worrying of implementing a complex EDI infrastructure
According to (CRMNEWZ) the life cycle of CRM consists of three phases - customer acquisition, customer relationship enhancements and customer retention. CRM software streamlines CRM activities at each phase of customer relationship management.
According to (Wikipedia)CRM includes many aspects which relate directly to one another:
References
CRMNEWZ. CRM And Customer Life Cycle. Retrieved 20 July 2009, from http://www.crmnewz.com/crmnewz-18-20050407CRMandCustomerLifeCycle.html
Wikipedia. Business-to-business. Retrieved 20 July 2009, from http://en.wikipedia.org/wiki/Business-to-business
Wikipedia. Customer relationship management. Retrieved 20 July 2009, from http://en.wikipedia.org/wiki/Customer_relationship_management
Wikipedia. Electronic Data Interchange. Retrieved 20 July 2009, from http://en.wikipedia.org/wiki/Electronic_Data_Interchange
Wikipedia. Enterprise resource planning. Retrieved 20 July 2009, from http://en.wikipedia.org/wiki/Enterprise_resource_planning
Wikipedia. Supply chain management. Retrieved 20 July 2009, from http://en.wikipedia.org/wiki/Supply_chain_management
Exercise 21: 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.
This is a class diagram of the textual information provided. This was produced using the class diagram tool in Visual Studio 2008. There are no multiplicities defined. This would be fleshed out with some further business case analysis.
Exercise 20: Modeling with UML
- Use Case, Class, Sequence, Collaboration, State chart, Activity, Component and Deployment diagrams are used in UML. Describe each of the eight (8) main diagrams used in UML.
- Use Case diagram
- Class diagram
- Sequence diagram
- Collaboration diagram
- State Chart diagram
- Activity diagram
- Component diagram
- Deployment diagram
Use cases are text stories, widely used to discover and record requirements.(Larman, p61)
A use case diagram is an excellent picture of the system context; it makes a good context diagram, that is, showing the boundary of a system, what lies outside of it, and how it gets used. It serves as a communication tool that summarizes the behaviour of a system and its actors.(Larman, p90)
Class diagrams are used to illustrate classes, interfaces, and their associations. They are used for static object modeling. (Larman, p249)
A system sequence diagram (SSD) is a fast and easily created artifact that illustrates input and output events related to the systems under discussion. An SSd shows, for a particuler course of events within a use case, the external actors that interact directly with the system, the system (as a black box), and the system events that the actors generate.(Larman, p173-175)
Also called an interaction diagram or a communication diagram. These diagrams illustrate how objects interact via messages. They are used for dynamic object modelling. There are two common types: sequence and communication interaction diagrams. (Larman p221)
A state chart allows nesting to obtain substates; a substate inherits the transitions of its superstate (the enclosing state). Substates can be graphically shown by nesting them in a superstate box. (Larman, p489)
A UML activity diagram shows sequential and parallel activities in a process. They are useful for modelling business processes, workflows, data flows, and complex algorithms.(Larman, p477)
UML components are a design-level perspective,; they don't exist in the concrete software perspective, but map to concrete artifacts such as a set of files. (Larman, p654)
A deployment diagram shows the assignment of concrete software artifacts (such as executable files) to computational nodes (something with processing services). It shows the deployment of software elements to the physical architecture and the communication (usually on a network) between physical elements. (Larman, p651)(
References
Larman, C. (2005). Applying UML and patterns: an introduction to object-oriented analysis and design and the unified process (3rd ed.): Prentice Hall PTR Upper Saddle River, NJ, USA.
Exercise 19: TP monitors and transaction protocols
- Give a description in your own words of the ACID properties of a transaction.
- Describe a TP monitor environment. How can a TP monitor stop an operating system being overwhelmed?
- What is difference in load balancing with traditional and transactional MOM, RPC and conversations?
- How can TP Monitors save money?
- Why is a two-phase commit protocol better than a one-phase atomic commit protocol?
- What is CICS by IBM?
- Initiate and destroy threads to carry out transactional operations. Many transaction monitors will access a pool of threads which have been set up when the monitor was started.
- Manage the resources that are being accessed, for example ensuring that updates are carried out in such a way that the resource does not lend itself in an inconsistent state.
- Ensure that if a transaction fails then suitable action is taken; this action can be provided by a programmer as code to be executed. In order to do this most TP monitors will use a two-phase atomic commit protocol.
- Schedule threads so that low-priority transactions, for example batch transactions, are allocated a smaller share of resources than high-priority transactions such as online transactions.
- Enable the processing load on a distributed system to be shared between a number of servers.
- Enable a distributed system to function – even in the presence of the failure of one or more servers.
Atomic means that all portions of a transaction will process successfully or none of them will.
Consistant means that if a transaction is repeated then the same result will eventuate.
Isolated means that the transaction is not affected by other transactions.
Durable means that the result are stored permanently.
A TP (Transaction Processing) monitor is a complex program which manages the execution of a transaction starting with the client executing the transaction; it will normally employ a number of servers and then return any results to the client. TP monitors carry out two important processes: they manage the concurrent execution of the threads and processes that make up a transaction and ensure that the ACID properties detailed earlier in the chapter are enforced; for example, a TP monitor ensures that when a transaction updates a shared item of data when other transactions wish to access the data then the result of the updating is consistent.(Ince, p365)
According to (Wikipedia) load balancing is a technique to spread work between two or more computers, network links, CPUs, hard drives, or other resources, in order to get optimal resource utilization, maximize throughput, and minimize response time.
Message-oriented middleware (MOM) is infrastructure focused on message sending that increases the interoperability, portability, and flexibility of an application by allowing the application to be distributed over multiple heterogeneous platforms. It reduces the complexity of developing applications that span multiple operating systems and network protocols by insulating the application developer from the details of the various operating system and network interfaces
In traditional MOM, messages are addressed to their recipients, although sender and receiver are loosely coupled and need not synchronise to communicate.(IEEE)
Remote procedure call (RPC) is an Inter-process communication technology that allows a computer program to cause a subroutine or procedure to execute in another address space (commonly on another computer on a shared network) without the programmer explicitly coding the details for this remote interaction.
TP monitors save money by making use of the processer idle time between user requests. This usage relieves the need for purchasing additional hardware for each individual to utilise. It also means that you make the hardware that you do have work more efficiently from a business perspective.
The two-phase commit protocol is better in a distributed environment in that it allows a server to make a unilateral decision to abort a transaction if required.
(Ince, p361) The description of the protocol is detailed below in steps 3.1 to 3.4. The general rule about aborting or committing a transaction is: 1. If the client requests that a transaction is aborted, for example the client is building up an order in a shopping cart and decides not to complete the order, then the coordinator will inform all the servers involved in the transaction that they should abort. 2. If one of the servers decides to abort a transaction, for example in order to release a lock, then the coordinator informs all the servers involved in the transaction; they will then all abort. 3. If the client asks for a transaction to be committed then the two-phase commit protocol starts and steps 3.1 to 3.4 are carried out. 3.1 The coordinator asks each server whether they can commit. 3.2 Each server decides whether it can commit or not and sends back a reply which indicates the result of its decision. If it cannot commit then it aborts its transaction. 3.3 If all the servers have voted to commit their transactions then the coordinator informs all the servers that they can commit. 3.4 If at least one server cannot commit then the coordinator decides to abort the transaction and sends an abort message to all the servers involved. 4. Those servers which have agreed to commit to a transaction wait for the final decision from the coordinator. This will be either a commit instruction or an abort instruction. They will then act on this.
(Ince, p365-366) CICS is a complex TP monitor marketed by IBM. It will:
References
IEEE, (2009). Message-Oriented Middleware. Retrieved 9 July 2009, from http://dsonline.computer.org/portal/site/dsonline/menuitem.9ed3d9924aeb0dcd82ccc6716bbe36ec/index.jsp?&pName=dso_level1&path=dsonline/topics/middleware&file=intro_MOM.xml&xsl=article.xsl
Ince, D. (2006). Developing Distributed & E-commerce Applications: Prentice-Hall, Inc. Upper Saddle River, NJ, USA.
Wikipedia. Load balancing (computing). Retrieved 9 July 2009, from http://en.wikipedia.org/wiki/Load_balancing_(computing)
Wikipedia. Message-oriented middleware. Retrieved 9 July 2009, from http://en.wikipedia.org/wiki/Message-oriented_middleware
Wikipedia. Remote procedure call. Retrieved 9 July 2009, from http://en.wikipedia.org/wiki/Remote_procedure_call
Exercise 18: Threading demonstration in Python
I have looked at the code and the output.
The microsoft subjects that form part of this course also deal with threading issues, required us to understand concurrency and enabled us to think about threadsafe practices.
Exercise 17: Concurrency terms
- Thread Synchronization
- Locks
- Deadlock
- Semaphores
- Mutex (mutual exclusion)
- Thread
- Event
- Waitable timer.
- When a timer is set, it is canceled if it was already active, the state of the timer is nonsignaled, and the timer is placed in the kernel timer queue.
- When a timer expires, the timer is set to the signaled state. If the timer has a completion routine, it is queued to the thread that set the timer. The completion routine remains in the asynchronous procedure call (APC) queue of the thread until the thread enters an alertable wait state. At that time, the APC is dispatched and the completion routine is called. If the timer is periodic, it is placed back in the kernel timer queue.
- When a timer is canceled, it is removed from the kernel timer queue if it was pending. If the timer had expired and there is still an APC queued to the thread that set the timer, the APC is removed from the thread's APC queue. The signaled state of the timer is not affected.
(msdn)Synchronization provides a compromise between the unstructured nature of multi threaded programming and the structured order of synchronous processing. You use synchronization techniques: To explicitly control the order in which code runs whenever tasks must be performed in a specific sequence -or- To prevent the problems that can occur when two threads share the same resource at the same time. For example, you could use synchronization to cause a display procedure to wait until a data retrieval procedure that is running on another thread is complete.
Locks are pieces of software that make sure that two processes do not get into each other's way when accessing a common resource and sequence the processes when there are dependencies among them.(Eustace, p8)
A deadlock is a case where two pieces of code are trying to access the same objects but are blocking each other from getting at the resources. (Johnson, p396)
In the .Net framework The Semaphore class is used to throttle usage of some resource. Specifically, a Semaphore creates a kernel object that supports a certain number of valid slots at once. When the slots are filled, the remaining code will block until a slot is made available by another thread releasing the slot.(Johnson, p405)
A Mutex allows synchronization (like a lock) across AppDomain and process boundaries. (Johnson, p402-405) Using a named Mutex is a common way to synchronize data across process boundaries.
A process is a running program – code, data (variables, data structures, etc) with at least one thread of execution. A thread is a flow of control through the process, plus a private stack for local data. Threads enable concurrency (Eustace, p2)
An Event provides a way to notify to multiple threads (across AppDomain and process boundaries) that some event has occurred. Events are a type of kernel object that has two states, on and off. These states allow threads across an application to wait until an event is signaled to do something specific.(Johnson, p402-406)
A waitable timer (MSDN) object is a synchronization object whose state is set to signaled when the specified due time arrives. The behavior of a waitable timer can be summarized as follows:
References
Eustace K. Concurrency and Transactions, ITC382/ITC594/ITC565 Topic 8
MSDN. Waitable Timer Objects. Retrieved on 6 July 2009, from http://msdn.microsoft.com/en-us/library/ms687012(VS.85).aspx
MSDN. Thread Synchronization. Retrieved on 6 July 2009, from http://msdn.microsoft.com/en-us/library/dsw9f9ts(VS.71).aspx
Johnson, B., Lanham, B., & Wildermuth, S. (2007). Mcpd self-paced training kit (exam 70-549): designing and developing enterprise applications using the microsoft®. net framework.
Exercise 16: Authentication and Encryption systems
- Visit an e-commerce website and survey the mode of payment allowed. Would you trust the site with your business?
- Global e-commerce presents challenges exempt from domestic e-commerce. What security concerns add to the complexity of international e-business?
- Improper or unauthorized use of the organization's e-Commerce offering (i.e., web site)
- Using connectivity to the Internet as the path to the organization's internal, private systems for unauthorized access
- What measures should e-commerce provide to create trust among their potential customers? What measures can be verified by the customer?
- Are you visiting a secure site?
- Is the website certified by an Internet trust organization?
- Is the website owned by a company or organization that you know well?
- Does the website ask you for personal information?
- On a retail website, is there a way to contact someone by phone or mail?
- If you don't recognize the site, do you have other information to help you decide?
- The site is referred to you through an e‑mail message from someone you don't know.
- The site offers objectionable content, such as pornography or illegal materials.
- The site makes offers that seem too good to be true, indicating a possible scam or the sale of illegal or pirated products.
- You are lured to the site by a bait and switch scheme, in which the product or service is not what you were expecting.
- You are asked for a credit card as a verification of identity or for personal information that does not seem necessary.
- You are asked to provide a credit card number without proof that the transaction is secure.
- Visit 10 e-commerce websites. How many mention security on their home page? Is privacy mentioned? How many of them belong to the TRUSTe association?
- Visit the Verisign web site - what solutions does it offer for e-commerce?
- Visit your e-mail or WWW browser provider site and search for security. What technologies does your particular product support? I took the following screen shot of the Bigpond Security information page. I guess that they are primarily Windows based. I make this statement based upon the Windows Only stipulation on the Bigpond Security trial.
- Visit the TRUSTe web site. Describe what services and solutions are offered.
- Get the latest PGP software from http://web.mit.edu/network/pgp.html; install it on two machines and encrypt a message on one machine and decrypt it on the other.
- The use of digital certificates and passports are just two examples of many tools for validating legitimate users and avoiding consequences such as identity theft. What others exist?
A site that I have used multiple times is UMART Online. It is an online computer shop. They accept payment by Cash/EFTPos/Cheque. They do have a physical presence as well with multiple stores around Australia. Their method of payment by credit card requires filling in a paper based form, with your credit card details, faxing it to them, and if your order is over $500 sending in a photocopy of your Drivers Licence.
This method is a little confronting, when looked at from a security perspective, with Identity theft concerns. But their prices made it seem just to good.
Access by unauthorized users is the area of risk that approaches the level of "significant" and is perceived to present the greatest overall security risk to e-Commerce. (Isaca)
According to (Isaca), the security impact of e-Commerce can be placed into two categories:
Knowing when to trust a website depends in part on who publishes the website, what information they want, and what you want from the site. If you're not sure whether to trust a website, consider these questions:
According to Microsoft a website might not be trustworthy if:
Verisign provides SSL Certificates and other security services. Their site mentions 2 related products and services.
TRUSTe provides services to alleviate privacy concerns relating to company communications, by ensuring that those communications align with privacy standards.
The TRUSTe motto of "Their Privacy Is Your Business" identifies the goal of Building Customer Trust to ensure future Revenue.
Other methods of user validation include biometric authentication (fingerprints, palm prints, voice analysis, iris scans etc) and handheld password tokens.(Authentication Tools)
Exercise 15: Review questions
- Can a simple firewall be designed from standard computer equipment?
(Wikipedia) A firewall is a dedicated appliance, or software running on a computer, which inspects network traffic passing through it, and denies or permits passage based on a set of rules.
It is a software or hardware that is normally placed between a protected network and a not protected network and acts like a gate to protect assets to ensure that nothing private goes out and nothing malicious comes in.
A firewall's basic task is to regulate some of the flow of traffic between computer networks of different trust levels. Typical examples are the Internet which is a zone with no trust and an internal network which is a zone of higher trust. A zone with an intermediate trust level, situated between the Internet and a trusted internal network, is often referred to as a "perimeter network" or Demilitarized zone (DMZ).
There are several types of firewall technigues:
- Packet Filter - looks at each packet entering or leaving a network and accepts or rejects it based upon user defined rules.
- Application Gateway - Applies security mechanisms to specific applications. These can impose a performance degradation.
- Circuit-level gateway - Applies security mechanisms to a TCP or UDP connection.
- Proxy Server - intercepts all messages entering and leaving network. Effectively hides true network addresses.
- What hardware components would you need for a proxy server?
- What makes a firewall a good security investment? Accessing the Internet, find two or three firewall vendors. Do they provide hardware, software or both?
- Adtran's NetVanta line provides varying levels of network firewall protection based on the enterprise client's security needs. The hardware-based solution provides corporate protection, including VPN and regulatory compliance, for on-site and remote employees.
- Check Point's line of network firewalls includes Power-1 Appliances for large data centers, VPN product lines and UTM appliances. Its line of Integrated Appliance Solutions provides integrated software and hardware solutions for customized firewall protection
- Cisco's firewall offerings are designed to work with only Cisco networks and include the hardware-based ASA 5500, router and switch firewalls such as the Cisco Firewall Services Module and the software-based Cisco IOS
- Accessing a firewall vendor site, find out what solutions are offered:
http://www.checkpoint.com
Solutions are provided for
http://www.microsoft.com/catalog/display.asp?subid=22&site=10538&x=44&y=21This URL is broken.
- Does the company you work for (or the school you attend) utilise a proxy server for Internet access? Is the proxy server intended to keep hackers out of the network, or control employees’ access to the Internet?
Find out if your university or workplace has a backup policy in place. Is it followed and enforced?
My workplace does enforce a backup policy. Full cyclic backups are done on a nightly and weekly basis. Monthly backups are kept for 12 months.
- Most of the antivirus software perform an active scanning of the user activity on the Internet, detecting downloads and attachments in e-mails. Hackers have readily available resources to create new viruses. How easy is it to find a virus writing kit? Search the Internet and find such a tool. For example, see what you can find at http://vx.netlux.org/dat/vct.shtml
- Download a virus checker and read the documentation.
- How does it operate?
- What is the process of updating the virus signature file?
- How does the publisher charge for the product/service?
Strictly speaking no hardware components are required explicitly for a proxy server. This is because the functions of proxy, firewall, and caching can be in separate server programs or combined in a single package. Different server programs can be in different computers. For example, a proxy server may in the same machine with a firewall server or it may be on a separate server and forward requests through the firewall.(Whatis.com)
As identified above a firewall acts like a gate to protect assets to ensure that nothing private goes out and nothing malicious comes in.
Yes, firewall used to keep hackers out.
We are using content filtering with a product called surf control to restrict internet content.
This website produced a list of 195 virus creation tools.
I have AVG free installed on all my computers at home. Work uses Symantec Corporate edition.
x
Using the software tool provided.
Currently there are a purported 80 million users of AVG Free. AVG does provide a subscription model that is more fully featured.
SearchSecurityChannel.com. Partner Program Directory. Retrieved 20 July 2009, from http://searchsecuritychannel.techtarget.com/generic/0,295582,sid97_gci1316089,00.html
Wikipedia. Firewall. Retrieved 30 June 2009, from http://en.wikipedia.org/wiki/Firewall_(networking)
Whatis.com. proxy server. Retrieved 30 June 2009, from http://whatis.techtarget.com/definition/0,,sid9_gci212840,00.html
Exercise 14: Electronic payments and security II
- You can learn more about Cookies at: http://home.netscape.com/newsref/std/cookie_spec.html
- You can learn more about electronic payment systems with Reading 9 on Electronic Reserve on the CSU Library Service Web site at: http://www.csu.edu.au/division/library/eservices/ereserve.htm The article is by Schneider, P & Perry, JT 2001, ‘Electronic payment systems’, Chapter 7, in Electronic Commerce, Course Technology, Boston.
Unfortunately this URL is a little out of date. But the 404 message below is very nice.
As we have been informed before by Ken, we can ignore the readings. Consequently there is nothing to do here.
Sunday, June 21, 2009
Evaluation Report
My elevator pitch is contained at Elevator Pitch 1.
the transcript of the report is as follows:
Hello this is Grant Lavers.
Developing an online business application is analogous to baking a cake.
First you need a recipe. In our case we need to understand the users and consumers of our business model and our objective, is it Business to Consumer, Business to Business, or maybe even Consumer to Consumer.
Secondly, we need to gather the ingredients to make our cake. In the Web 2 world this means looking at the communication protocols, data storage requirements, programming languages, and delivery mechanisms that will mix together to create our application.
Thirdly we need to bake the cake. In the case of ITC565 this means looking at the Ruby on Rails development environment, which implements the Model View Controller design pattern and pushes the Convention over Configuration mantra.
The proof of a cake is in the eating. This will happen over the coming weeks, but it looks good so far.
Unbeknown to me at the time, the most difficult thing about doing the elevator pitch, was actually working out how to post it to the blog. I wrongly assumed that posting audio would be the same as posting video. Well i know better now. I have used the free hosting site www.archive.org to host the audio file. Maybe someone else can suggest a better alternative for the future.