Friday, May 28, 2010

Topic 12 Exercise 16

Choose one of the four ways to manage and develop integrated systems as listed in the study guide. Summarize your understanding and describe its relevance in either your study at university or in your work environment. 

I decided to choose "Business Process Analysis" as my everyday work requires exposure and thorough understanding of business processes driven by the enterprise data and the IT infrastructure that makes it possible behind the scenes. Building business support solutions is in most cases more about the business logic and how processes are designed and executed rather then strictly about IT hardware/peripherals or software. Just like work put in designing a database for a corporate environment requires 70-90% of the time spent on discovering and analysis of the business rules and defining the processes which control the the transaction flow, business process analysis is a complex, "user, not hardware" centered process.
My current position as a data warehouse administrator focuses ob business control as a primary tool for IT solution development. Unlike database administration, which in many cases resembles systems administration, data warehouse is designed specifically to get the most out of IT for decision support and making judgment based on sound facts rather then assumptions. Building solutions to facilitate such processes, although software driven, is very much dependent on analysis and business rules translation, therefore  
my primary role does not resemble "nuts-and-bolts" IT, but takes its core function from data workflow and the rules behind it.     
Having a central repository of data and the business processes (data warehouse or dispersed data marts) provides the ultimate level of integration. Any application, system, function or transaction can be queried and looked at in detail as well as cross-referenced for greater transparency. Just like "all roads lead to Rome" all data, given the ability to be accessed and extracted flows into the warehouse which provides centralized knowledge and an accurate point of reference for any type of queries, reports, data analysis/modeling - all neatly linked and correlated together. Systems integration has been of the most important goals for businesses to achieve and thanks to the ability to link the individual, seemingly unrelated activities/transaction together companies have been given the power to understand and even predict their decisions for better prosperity.   

Monday, May 24, 2010

Topic 10 Exercise 15

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 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 is an example of telecommunication convergence and is becoming more and more popular with mobile telephone users. The concept relies on determining the users position and distance from the cell-phone towers nearby or using GPS service provide an accurate location of the subject in relation to the services specified by the user. These can include simple weather updates or points of interest up to very sophisticated and advanced augmented reality services with detailed information based on the subject location.  

2. Describe the purpose of Open Mobile Alliance Initiative?

OMAI's main goal is to provide inter operable service enablers working across countries, operators and mobile terminals while allowing businesses to compete through innovation and differentiation.

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

Firstly, a discovery process which is done through UDDI. When one party (requester) contacts another (provider) to obtain services, the requester must locate an appropriate provider. This process is known as discovery. Different mechanisms can be used in the process, such as finding services listed on a web site, searching a directory or locating the provider through a framework that supports discovery.

Next process is description. When a provider has been located, the requester needs to learn the rules related to contacting the provider (e.g., which protocols to use, how to structure messages, and which security and other policies to observe).

The third process is to communicate with the provider by sending and receiving messages. The communication usually takes place using the SOAP protocol together with underlying protocols such as HTTP. The definition of how an underlying protocol is to be used with SOAP is called a SOAP binding. It is required in order to achieve interoperability between SOAP messages and their underlying protocol.

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

Companies researched: 

Singapore Airlines and ANZ Bank

Singapore Airline:
The following WAP services are available:

*  View real-time flight information
*  Register for flight alerts to be sent to your mobile/pager/email address
*  Look up our worldwide office addresses, telephone/fax numbers and email addresses
*  Use the KrisFlyer Redemption and Accrual Calculators
*  Log into your KrisFlyer account and check your latest mileage summary*
*  Check PPS Club and KrisFlyer service numbers you can call around the world*
*  Look out for exclusive KrisFlyer Promotions & Events

ANZ Bank:
The following WAP services are available:

* view account balances
* view transaction history up to 30 days
* transfer between accounts**
* pay bills via BPAY®**
* complete Pay Anyone transactions**
* locate ANZ ATM's, Branches, Business Centres and Night Safes
* contact ANZ
* view regular www.anz.com.


References:

http://www.singaporeair.com/saa/en_UK/content/SIA_Mobile/index.jsp accessed on 22/05/2010
http://www.anz.com/personal/ways-bank/banking-mobile-devices/mobile-banking/ accessed on 22/05/2010http://en.wikipedia.org/wiki/Open_Mobile_Alliance accessed on 22/05/2010

Topic 10 Exercise 14

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

A spider is an automated software which has been designed to "crawl" the Internet in search for new websites which upon finding are being indexed and cataloged for future rapid retrieval. Search companies e.g. Google use spiders to keep abreast of new sites and thus increase accuracy of their search results. They detect new or updated sites. 

2. Differentiate the various types of software agents.

A software agent is a piece of software that acts for a user or other program in a relationship of agency. Such "action on behalf of" implies the authority to decide which (and if) action is appropriate. These include Intelligent agents (in particular exhibiting some aspect of Artificial Intelligence, such as learning and reasoning), autonomous agents (capable of modifying the way in which they achieve their objectives), distributed agents (being executed on physically distinct computers), multi-agent systems (distributed agents that do not have the capabilities to achieve an objective alone and thus must communicate), and mobile agents (agents that can relocate their execution onto different processors).

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

Buyer agent or shopping bots will search all the Internet and will gather information about goods and services. The most classic examples is that of Amazon.com. While buying books or CDs at this site, a list of related book or CDs will be offered that the buyer might consider to buy as well as related products that other buyers have purchased which selecting the same product from the catalog. 

4. Rocky - computing ethics and bot programming case study

Unfortunately, I was unable to conduct a virtual conversation with Rocky as advised in the Study Guide. I used a number of options given to us from the train 1-20 user name and password options with no luck in Opera (my default browser) with a message that the login and password are incorrect. I tried IE version 8 and managed to log in, however, I was not able to communicate with Rocky - the left half of the screen was empty when clicked on Rocky  - ELIZA-like bot.

References:

http://en.wikipedia.org/wiki/Web_crawler accessed on 22/05/2010
http://en.wikipedia.org/wiki/Software_agent accessed on 20/05/2010


Topic 9 Exercise 13

Develop a class diagram for the following shopping cart specifications:

A shopping cart object is associated with only one credit card and customer and to items in the Item_to_Buy object. Persistent customer information such as name, billing address, delivery address, e-mail address, and credit rating is stored in customer object. The credit card object is associated with 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. 


Topic 9 - Exercise 12

Examine the Use Case in Figure 4 and explain the MVC architecture of the online bookstore (the model the view and the controllers) needed to lookup books and add to shopping cart


Lookup Books. Model: Lookup Books, View: Book Search page, Controller: Book Search Controller

Customers are required to provide a search item in the search box. The book search controller passes the searching criteria to Lookup Books and redirects the display to Book Search Result page. Meantime model is displaying the search results. 

Add to Shopping Cart. Model: Add to Shopping Cart, View: Add to Shopping Cart page, Controller: Add to Shopping Cart Controller

Customers input books information in the Add to Shopping Cart page.
The Add to Shopping Cart Controller passes the customer's selected information to Add to Shopping Cart for processing and redirects the display to Shopping Cart Result page. Meantime, model will be requested to display the result for the shopping cart updated with the item requested.


Topic 8 - Exercise 11

1. Give a description in your own words of the ACID properties of a transaction

ACID is an acronym for atomicity, consistency, isolation and durability. Each of those 4 qualities are necessary for the transaction to be designed correctly. 

Atomicity means that a transaction must exhibit "all or nothing" behavior.
Consistency - All data needs to be "correct" after running a transaction in a database. 
Isolation - Means that transactions can run at the same time although it appears that there is no concurrency.
Durability - A durable transaction will not impact the state of the data if the transaction ends abnormally.

2. Describe a TP monitor environment. How can a TP monitor stop an OS being overwhelmed?


Short for transaction processing monitor, a program that monitors a transaction as it passes from one stage in a process to another. The TP monitor's purpose is to ensure that the transaction processes completely or, if an error occurs, to take appropriate actions.

TP monitors are especially important in three-tier architectures that employ load balancing because a transaction may be forwarded to any of several servers. In fact, many TP monitors handle all the load balancing operations, forwarding transactions to different servers based on their availability.

References:

http://databases.about.com/od/specificproducts/a/acid.htm accessed on 22/05/2010
http://www.webopedia.com/TERM/T/TP_monitor.html accessed on 22/05/2010

Topic 8 - Exercise 10

1. Find definitions for eight terms and concepts used in threaded programming:

Thread Synchronization -  Thread synchronization requires that a running thread gain a "lock" on an object before it can access it. The thread will wait in line for another thread that is using the method/data member to be done with it. This is very important to prevent the corruption of program data if multiple threads will be accessing the same data. If two threads try to change a variable or execute the same method at the same, this can cause serious and difficult to find problems. Thread synchronization helps prevent this.

Locks -  A lock is a synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution. Locks are one way of enforcing concurrency control policies.

Deadlock - In computer science,deadlock refers to a specific condition when two or more processes are each waiting for each other to release a resource, or more than two processes are waiting for resources.

Semaphores - a semaphore is a protected variable or abstract data type that constitutes a classic method of controlling access by several processes to a common resource in a parallel programming environment. A semaphore generally takes one of two forms: binary and counting. A binary semaphore is a simple "true/false" (locked/unlocked) flag that controls access to a single resource. A counting semaphore is a counter for a set of available resources.

Mutex - Mutual exclusion (often abbreviated to mutex) algorithms are used in concurrent programming to avoid the simultaneous use of a common resource, such as a global variable, by pieces of computer code called critical sections. A critical section is a piece of code in which a process or thread accesses a common resource. The critical section by itself is not a mechanism or algorithm for mutual exclusion. A program, process, or thread can have the critical section in it without any mechanism or algorithm which implements mutual exclusion.

Thread - a thread results from a fork of a computer program into two or more concurrently running tasks. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process. Multiple threads can exist within the same process and share resources such as memory, while different processes do not share these resources.

Event - in programming world even can refer to an action which invokes certain event that is predetermined by that very action e.g. rolling a computer mouse pointer over a link to display w message.

Waitable timer - A waitable time is a synchronization object whose state is set to signaled when a specified due time arrives.

References:

http://en.wikipedia.org/wiki/Deadlock accessed on 22/10/2010
http://en.wikipedia.org/wiki/Thread_(computer_science) accessed on 19/05/2010
http://en.wikipedia.org/wiki/Semaphore_(programming) accessed on 22/05/2010