The elevated pitch of ITC 594 Assignment no 2 is uploaded here for reference.
ITC 594 Assignment No 2 Elevated Pitch
May 20, 2008Exercise 25
April 29, 2008Exercise 25 – M-commerce and the e-wallet: Innovation and mobile devices
Exploring one of the problems associated with mobile technology or their suppliers.
What is meant by a location based service?
Location based services (LBS) are services making use of the position of an information devices such as a mobile phone or smartphone. The following are some of the technologies associated with LBS:-
a. Global Positioning System (GPS) using the signals received by satellites;
b. E911, an initiative of the Federal Communication Commission (FCC) requiring wireless carriers to pinpoint a caller’s telephone number to emergency dispatchers; or
c. simply network bases positioning relying on triangulation of signals from cell sites serving a mobile phones
The positioning technologies together with Geographic Information Systems (GIS), we call have a full picture on the location of the mobile device together with supporting geographical information. The following are some of the services derived from the above technologies:-
a. Mobile phone user can search for place of interests, hotels, restaurants etc. in vicinity of his location;
b. Different tariff plans depending on the geographical locations can be applied such a special discount rate for mobile calling in a designated district;
c. The mobile users can be tracked and located in emergency situation; and
d. For tracking fleets in logistic arrangement.
One of the problem with LBS is the possible violation of privacy of the mobile user. The mobile user has no control on their locations being known to others. Therefore Cellular Telecommunications and Internet Association has requested FCC to formulate rules on wireless location privacy. The proposal technical solution would include notice, consent and security of privacy information being captured using LBS.
Reference
MobileIN.com (n.d.) Location-based services. Retrieved April 29, 2008 from http://www.mobilein.com/location_based_services.htm.
SearchNetwork.com (2007). Location-based services. Retrieved April 29, 2008 from http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci532097,00.html.
Exercise 24
April 29, 2008Exercise 24 – Virtual business worlds and cyberagents
1. Differentiate the various types of software agents.
Software agent is a software acting for a user or other program in a relationship as an agency.
Software agents can be categorized as following:-
Intelligent agents
Intelligent agents process the ability to adapt and to learn.
Adaptation: Intelligent agents can sense the environment reconfiguring itself to response to the environment. The adaptation abilities are achieved by preset problem solving rules or algorithms, the discovery of problem solving strategies, the internal construction like recruiting processor or storage resources.
Learning: Learning processes are achieved through trial and error, introspection and analysis of behavior and success, referring past examples and generalization.
Autonomous agents
Autonomous agents are self-contained and capable of making independent decisions, and taking appropriate actions to achieve the preset tasks based on the sensed environment.
Distributed agents
Distributed agents are designed to be very loosely coupled and enable their execution as independent threads and on distributed machines, adopting the principles of distributed computing.
Multi-agent systems
Multi-agent systems are also referred as swarm systems making up with several agents in order to achieve an objective. Each of individual agents would not have the capabilities to achieve the objective on their own. With multi-agent systems, both the processes and data are decentralized and are executed asynchronous.
Mobile agents
Mobile agents are mobile codes which moves itself and their execution state from processor/machine to another. Mobile agents can be used for gather system information, taking copy of back-up files in client-server paradigm, monitoring network situation, checking resources availability and moderating the utilization of system resources etc..
Fuzzy agents
Fuzzy agents are software agents which can implement fuzzy logic and to interacts with its environment through an adaptive rule-base.
2. Describe how techniques such as artificial intelligence and statistical techniques are used in software agent.
The intelligent agent can be programmed for the users’ aim, targets and preference with artificial intelligence. For example, a intelligent agent can be programmed with artificial intelligence to assist the users to search a specific type, model and color of car in the Internet including the negotiation on the price and closing the deal as well. Alternatively, the intelligent agent can just source the cars available in the Internet meeting the users’ requirement leaving the user to make the final decision.
Mobile agents are programmed with statistical techniques to enable them to monitor the network situation and utilization of system resources.
3. Identify various activities in e-commerce where software agents are currently in use.
Commerce agents: Software agents which mediates between two companies having a business relationship.
Data management agents: Software agents carrying out tasks with corpora of data such as processing text from websites and producing summary with associated keywords.
Government agents: Software agents carrying out activities associated with government such as search government regulations, policies and statistics etc..
News agents: Software agents concerning tasks associated with web-based news services.
Shopping agents: Most popular software agents in the Internet and are used for accessing retails sites to source for a particular product with cheapest price. For example, a shopping agent can programmed to access CD sites to source the cheapest quote for a particular CD.
Software agents: Agents, which carry out tasks relating to new updates for existing system, downloading and installing the updates when received.
Stock agents: Software agents which carry out tasks relating to stock transactions including notifying you when the stock price reaching a preset price by e-mail or sms, providing updated technical analysis based on the latest market situations or maintaining the stock portfolio and giving warning signals when the portfolio is under performed.
4. Computing ethics and bot programming case study: rocky
Since we are unable to get the username and password for accessing LC_MOO, we can not complete this part of the exercise.
Reference
Ince, D. (2004). Developing distributed and e-commerce applications. Pearson Addison Wesley.
ScienceDaily (2000). Smart agent do deals on the nets. Retrieved April 29, 2008 from http://www.sciencedaily.com/releases/2000/05/000522081150.htm.
Wikimedia. (2008). Software agent. Retrieved April 29, 2008 from http://en.wikipedia.org/wiki/Software_agent.
Exercise 23
April 28, 2008Exercise 23 – Searching mechanisms
1. Spider is a software program, which would visit the web from link to link, locating and indexing the websites for the search engine such as Google or Yahoo. Function of spider are mainly to add and indexing new websites to the database of the search engines. In order to keep their database updated, spider would also revisit those existing links to update for their content.
2. Meta-search engine is a search engine, which would pass the search requests to various popular search engines such as Google, Yahoo and MSN etc. simultaneously for processing. Results from each search engineers would be consolidated and presented to the client grouped by their sourced search engines.
Dogpie www.dogpile.com, Mama www.mamma.com and Incrawler www.incrawler.com are some of meta-search engineers available from the Internet.
3. There following are several ways to get your sites listed in the search engines:-
a. Do nothing: The spider of the search engine would search and include your site into their database. However, it is not guaranteed on when your site would be included. However, I checked that my blog with updated page has been included in Google just within an hour after uploading.
b. Subscribe to search engine sites with annual subscription fees.
How could you improve your site ranking?
a. Some search engine sites, such as Google, would rank a page according to the number of links and quality of links leading to the pages. Therefore, if you manage to get more important websites linking to your site, the ranking of your site would improve.
b. Google would give more weight to the title of the website, those within the <Title> tags. Therefore using more meaningful title for your webpage would improve their ranking.
c. Similarly Google would index those webpage with image including ALT tags. Therefore, including ALT tags to the images of the webpage would also improve their ranking.
Reference
Berkeley, UC. (2008). Meta-search engines. Retrieved April25, 2008 from http://www.lib.berkeley.edu/TeachingLib/Guides/Internet/MetaSearch.html.
Heng, C. (n.d.) How to improve your search engine ranking on Google. Retrieved April 28, 2008 from http://www.thesitewizard.com/archive/google.shtml.
TechTerms. (n.d.) Spider. Retrieved April 25, 2008 from http://www.techterms.com/definition/spidertechterms.com/definition/spider.
Exercise 22
April 27, 2008Differentiate between software systems such as Customer Relationship Management (CRM) software, Business-to-Business e-commerce program and Supply-Chain Management software (SCM). are performing different functionalities in company-wide environment.
Customer Relationship Management software
CRM software is a software system designed to analyze the customers’ preference, spending pattern, needs, market trends based on the customer data collected. Based on these analysis, the company would understand the customers’ need better, the present market situation and the future market trends which enable the company to formulate their company’s short-term and long-term strategies and operation modes to suit the current market situation and to meet the market trends to the best interest of the companies. With CRM, the parties involved are the customers and the company itself.
Business to Business e-commerce program
Business to Business e-commerce program is an application system to enable companies to conduct business transaction in electronic means. With B2B, the companies involved require negotiation and integration to enable communication between the companies for the business transaction. Benefits with B2B include the following:-
- Managing inventory more efficiently
- Adjusting more quickly to customer demand
- Getting products to market faster
- Cutting the cost of paperwork
- Reigning in rogue purchases
- Obtaining lower prices on some supplies
Unlike the CRM, the parties involved in B2B e-commerce are companies.
Supply chain management software
SCM is a application system to help company to improve various company business operations including plan and managing the company resources, sourcing the suppliers for supplying the raw material, scheduling manufacturing activities, formulating the delivery operation and strategies, providing customer supports including collection of defective goods from customers. Basically SCM is a application system mainly to improve the internal operations of the company with a view to reduce product costs, operation costs, production costs and improving customer services.
Reference
Customer relationship management (n.d.) Retrieved April 27, 2008 from http://en.wikipedia.org/wiki/Customer_relationship_management.
Darwin Publications. (n.d.) Business to business – Overview. Retrieved April 28, 2008 from http://www.netessence.com.cy/downloads/b2b.pdf.
Srikanth, A (2000). E-commerce: a B2B guide. Retrieved April 27, 2008 from http://www.hinduonnet.com/businessline/iw/2000/05/28/stories/0728g101.htm.
Trapp. R. (2007). How customer relationship management systems can be of benefit to your business. Retrieved April 28, 2008 from http://www.independent.co.uk/news/business/sme/how-customer-relationship-management-systems-can-be-of-benefit-to-your-business-451821.html.
Worthen, B. (2007). ABC: An introduction to supply chain management. Retrieved April 28, 2008 from http://www.cio.com/article/print/40940.
Exercise 21
April 27, 2008Exercise 21 – Class diagram of Shopping Cart
Reference
Williams B. (2003) UML class diagram for shopping carts. Database Answers. Retrived April 27, 2008 from http://www.databaseanswers.org/data_models/uml_class_diagram_for_shopping_cart/index.htm
Exercise 20
April 24, 2008Exercise 20 – Modeling with UML
Use Case diagram -Contains actors, user cases and association for capturing the functional requirements and depict behaviors of the system from an external point of views.
- Actor:- A person, organization or external system, which play a role to in the system;
- Use case: A sequence of action of measurable values to an actor;
- Association: Connecting an actor to a use case. Represent the actor involved in interaction with the use case in the system;
Class diagram -illustrate the classes and attributes of the system, the interface and inter-relationships. The class, attributes and interface would be quite straightforward. However the relationship could be quite complicated due to multiplicity, generalization and associations.
Sequence diagram – Consists of objects and invocation messages. Sequence diagram indicates the order of invocations in the system and the creation of different objects.
Collaboration diagram – Consists of objects and messages focusing on the communications between objects and is quite similar to sequence diagram.
State chart diagram – Consists of state, transition, events and actions and showing various state of the entity and the change of states in response to different events. State diagram is not usually required except for complicated logic.
Activity diagram – Consists of activities and decisions showing the major flowcharts and data flow diagrams to illustrate the flow of codes.
Component diagram – Consists of major system components such as classifiers and artifacts and their inter-relation. It is a high level overview of the system.
Deployment diagram – Consists of deployment elements mainly hardware such as servers and their relationship and logic connections/configuration. Deployment diagram can be considered as a logical topography of the system.
Reference
Castillo, C. & Richards, K. (2007) Why model with UML?. Retrieved April 23, 2008 from http://www.netbeans.org/kb/55/uml-why-model.html.
Woo, J (n.d.). UML diagrams . Retrieved April 22, 2008 from http://www.cs.umbc.edu/courses/undergraduate/CMSC445/Fall06/UML%20Diagrams.ppt#273,28,Communication%20diagram
Exercise 19
April 23, 2008Exercise 19 – TP monitoring and transaction protocols
1. ACID properties of a transaction.
ACID properties of a transaction represents atomicity, consistency, isolation and durability of the transaction.
Atomicity: Represent that the transaction must either be fully completed or not started due to any error encountered during the transaction. Once error encountered during transaction, the transaction would be rolled back to “Not started state”.
Consistency: Represent that all the system should be in a valid state after completion of a transaction of even encountered errors during transaction. For the case the transaction is completed, all relevant changes should have been made. In case of encountering error during transaction, the transaction would be rolled back ensuring the system in a valid state.
Isolation: Represent that all transactions would be executed in an isolated mode without being affected by concurrent transaction or processing. With the transaction running in isolation, the consistency of the system can be maintained.
Durability: Represent that all changes after transaction should be recorded and in a permanent manner guarding against data loss. All the transaction could be recreated by referring the log records of the transaction.
2. TP monitor environment and how a TP monitor stop an operation system from being overwhelmed?
TP monitor is usually a middleware in a 3-tier client-server architecture. Major functions of the TP monitor are to manage the concurrent execution of the thread and processes in an transaction and to ensure the ACID properties of the transaction are being enforced. With the TP monitoring environment, the TP monitor would carry out the following:-
· initial and destroy threads involved in the transaction operation;
· manage resources / objects being accessed and to maintain system consistency;
· to take appropriate action for transaction failure situation. Usually 2-phase commit protocol would be adopted;
· schedule execution of thread by assigning different priority;
· ensure that processed loaded on a distributed system being shared by various servers; and
· keep system function even in situation with servers being broken.
3. The difference in load balancing with traditional and transactional MOM, RPC and conversations?
RPC- Remote Procedure Call is a synchronous communication where the calling application must stop processing or is blocked from proceeding until receiving the response from the remote procedure. RPC is simple but performance is a great concern. In particular, RPC requires lot of processing power and the numerous exchanges between the client and server is a burden to the networks.
MOM – Message Orientated Middleware support asynchronous communication in 2 models, the point to point messaging and message queue models. The advantage of message queue is that the remote program does not require being active while message is sent by the calling program. Both the calling and remote program can process at the own pace without disruption by the middleware. In addition, the calling program can broadcast message to more than 1 remote program at the same time. MOM’s performance is better than RPC especially in load balancing which implement prioritization and thread pooling.
However, Transaction Process Monitoring has greater performance advantage in load balancing over both RPC and MOM. TP monitoring would implement the following in load balancing:-
· use queued input buffer to protect against peak in the workload ;
· priority scheduling to prioritize messages;
· support server threads to save overhead of heavy weight processes; and
· make sure that none of the process would be overloaded.
4. Why is a two phase commit protocol better than a one phase atomic commit protocol?
With one-phase atomic commit protocol, a server could make a decision unilaterally to abort transaction. As a result, the consistency of the transaction would be affected.
With two-phase commit protocol, the co-coordinator would co-ordinate and consolidate an unique decisions of all the servers and client involved before a final decision on whether to abort or commit a transaction which could ensure the consistency of the transaction.
Reference
Ince, D. (2004). Developing distributed and e-commerce applications. Pearson Addison Wesley.
Linthicum, D.S. (1998). Middleware performance. Retrieved April 22, 2008 from http://www.dbmsmag.com/9808d07.html.
Wrox Press. (1998). ACID Properties. Retrieved April 22, 2008 from http://msdn2.microsoft.com/en-us/library/aa480356.aspx.
Exercise 18
April 22, 2008Exercise 18 Threading demonstration in Python
I created the file threaddemo.py file by copy and paste from the study guide. The codes are paste into the shell of python and run the module. At first I got some errors relating to the indent of my codes. After indenting the codes into the right indent position, there were no more errors and the module was run successfully with the following output:-
task <thread 0> will run for 0.107793996677 sec
1 tasks are running
task <thread 1> will run for 1.78487913711 sec
2 tasks are running
task <thread 2> will run for 0.0919440657057 sec
3 tasks are running
task <thread 0> done
<thread 0> is finished. 2 tasks are running
task <thread 3> will run for 1.0885244399 sec
3 tasks are running
task <thread 2> done
<thread 2> is finished. 2 tasks are running
task <thread 4> will run for 0.435078238863 sec
3 tasks are running
task <thread 5> will run for 0.78092471387 sec
task <thread 6> will run for 0.144063690585 sec
task <thread 7> will run for 1.56290882456 sec
task <thread 8> will run for 1.46552151389 sec
task <thread 9> will run for 0.80860973102 sec
waiting for all tasks to complete
task <thread 4> done
<thread 4> is finished. 2 tasks are running
3 tasks are running
task <thread 3> done
<thread 3> is finished. 2 tasks are running
3 tasks are running
task <thread 6> done
<thread 6> is finished. 2 tasks are running
3 tasks are running
task <thread 5> done
<thread 5> is finished. 2 tasks are running
3 tasks are running
task <thread 1> done
<thread 1> is finished. 2 tasks are running
3 tasks are running
task <thread 9> done
<thread 9> is finished. 2 tasks are running
task task<thread 7> <thread 8>done
<thread 7> done
is finished. 1 tasks are running
<thread 8> is finished. 0 tasks are running
all tasks done
The format of the output is similar to the output given in the study guide. However the values of the processing times are different due to the difference in processing speed of my desktop computer which is expected.
Exercise 17
April 22, 2008Exercise 17 Concurrency terms
1. Thread Synchronization
Thread synchronization is the co-ordination to resolve the situation with multi-thread accessing the same data or objects or class in object orientated programming.
The thread synchronization is achieved with locking systems. Each objects would be associated with a lock and the thread would need to acquire the lock before processing on the object. Once the lock of the object is being acquired by a thread, other thread cannot process on the object until the lock has been released by the thread.
2. Locks
Lock is the right of an object or a method within a class assigned to a particular thread for executing or processing during thread synchronization situation to resolve shared data/objects being accessed by multithreads simultaneously.
Once the lock has been assigned to a particular thread, only the thread processing the lock could process. The lock would then be released when they are no longer required.
3. Deadlock
Deadlock is a situation with distributed system with shared access when there is a contention between two transaction for two items of data. For example, Transaction A require access to Data X which has already issued with write lock of Data Y. However Transaction B has locked Data X but requiring access to Data Y. With the above situation, both Transaction A or B cannot be processed due to deadlock situation.
Ways to overcome the deadlock situation are either by using a wait for graph or by using time-outs. With wait for graph method, the lock manager would detect and avoid the formation of cycle lock and would determine which locks would be broken when a cycle is detected. With timeout method, each lock would be assigned with a time period before the lock would be removed or released to other transactions. Both methods have their own advantages and disadvantages over the others. Refer the reference for detailed operation.
4. Semaphores
A semaphore is similar to a lock for an object or method. When a thread enters into a semaphores protected section, the thread must acquire the semaphore in order to process through the section. After the thread is through the section, the semaphores would be released for any thread. Difference between semaphore and lock are that lock is mutually exclusive where semaphores exists more than one to a maximum number defined by the application. That means multi-users can process through the critical section simultaneously until the maximum semaphores are exceeded.
5. Mutex (mutual exclusion)
A multex is a semaphore with value 1. Only one thread can acquire a multex at a time, which is mutually exclusive in nature.
6. Thread
A thread is an execution of a chunk of code which can be processed in parallel with the execution of other chunk codes. Computer with multi-process can process different thread in parallel at the same time. Computer with single processor would need to use scheduler to determine the order of execution of the threads.
7. Event
Event can be considered as action, changes or transactions in concurrent programming. In some situation, we would interpret as a user response such as pressing a button or a key. We then write the associated script to response to such action or user response as event handling scripts.
8. Waitable timer.
A waitable timer is a synchronized object, which would signal its state when the specified period is expired. There are 3 types of waitable timer in concurrent programming as follows:-
· manual-reset timer whose state would be reset manually by other comment;
· synchronization timer whose state remains until the thread completes a wait operation; and
· periodic timer whose state would be re-activated after a specific time expires, the timer is reset or cancelled.
Reference
Ince, D. (2004). Developing distributed and e-commerce applications. Pearson Addison Wesley.
Micorsoft Corporation (2008). Waitable timer objects. Retrieved April 22, 2008 from http://msdn2.microsoft.com/en-us/library/ms687012(VS.85).aspx.
Winquist, N. (2005). Mutex vs. semaphore, what is the difference? Retrieved April 22, 2008 from http://koti.mbnet.fi/niclasw/MutexSemaphore.html.
Venners, B. (1997). How the Java virtual machine performs thread synchronization. Javaworld.com. Retrieved April 22, 2008 from http://www.javaworld.com/javaworld/jw-07-1997/jw-07-hood.html
