Friday, October 30, 2009

Exercise 15 - Q2,3, and 4

Exercise 15 – Q2,3,and 4


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

In relation with the Research, The Open Mobile Alliance initiative, a global undertaking founded by Nokia and other dominant companies, is getting rid of the barriers to inter-operability and energizing the industry. In 2002, OMA made an extension far beyond all industry expectations from approximately 180 founding members, including more than 300 dominant companies by the year-end. This commitment is activating the mass market take-up for new data and valuable services for any device on any network (2003). The OMA, the abbreviation of Open Mobile Alliance, bring open standards for the mobile market, supporting to create interoperable services that work over the countries, operators and mobile terminals, driven by users' demands. To expand the mobile industry, companies helping the Open Mobile Alliance will operate to stimulate the fast and wide adoption to a variety of new and enhanced mobile information, communication as well as entertainment services. The Open Mobile Alliance includes most main elements of the wireless value chain, and contributes to the punctual and efficient introduction of services and applications. The Open Mobile Architecture Initiative tries to ensure that GPRS and 3G handsets will all support certain functionality, such as Java support and multimedia messaging (openmobileallience, n.d.). The Open Mobile Alliance will gather various requirements in market and define specifications created in order to remove barriers to inter-operability and activate the development and adoption to a variety of new, enhanced mobile information, communication and entertainment services and applications. The definition of these common specifications and the test of interoperability will encourage the competition through innovation and differentiation, whereas ensuring the inter-operability of mobile services across industry, terminals as well as operators, through the overall value chain (Adams& Ashwell & Baxter, 2003). "The Open Mobile Alliance is designed to boost market growth by enabling non-fragmented, inter-operable mobile services. The Open Mobile Architecture initiative, launched last November, which demonstrates unprecedented condition with bringing together mobile market leaders as well as defines the beginning moment for a uniform mobile services platform. We are now excited about consolidating these efforts to form the Open Mobile Alliance and to carry on important industry-wide specification work," said Pertti Korhonen, Senior Vice President, Mobile Software, Nokia, describing supporters of the Open Mobile Architecture initiative (wapfourm, n.d.). , In accordance to Mark Winther, Group Vice President, OMA represents a very welcome new attitude in the mobile industry. It plays the essential role of the eco-system in realizing the potential of mobile services. An individual technology, product, vendor or operator will have little success without focusing on all aspects of the mobile value chain -- devices, networks, applications, and content. Thus, built as an alliance of alliances, the OMA keeps the promise to sweep away the barriers of information sharing, and simplify the multi-dimensional interrelation required to establish and deploy mobile services, Worldwide Telecommunications, IDC. According to Cellular, Jerry Upton, Vice President, Motorola and Chairman of the WAP Forum's Board of Directors, said the Open Mobile Alliance represents an evolution within the wireless market, encouraging a more complete, end-to-end approach through greater participation from all members of the value chain.

So, the major principles of the Open Mobile Alliance are to deliver responsive and high-quality open standards as well as specifications on the basis of the relevant industry and customers’ demands, establish centers of excellence for most available practices and conduct inter-operability test (IOT), such as multi-standard interoperability in order to ensure seamless user experience, build and promote a common industry view on an architectural framework, and the catalyst for the consolidation of standards and work with other present standards organizations and groups such as IETF, 3GPP, 3GPP2, W3C, JCP.

References

Adams, P. & Ashwell, G. & Baxter, R. (2007) Location-Based Services – An overview of the standards Retrieved Oct 21, 2009 website: www.springerlink.com/index/W5L58W7328928666.pdfOpenDocument


Cellular(n.d.) TheWworld’s Learning Mobile Operators, Device And Network Supppliers, Information Technology Companies And Content Providers Join Forces To Achieve Opern Standards And Endure Interoperability Retrived Oct 20, 2009 Website http://www.cellular.co.za/technologies/forums/oma.htm


Research (2003) Nokia connecting people (investment information) Retrieved Oct 20, 2009 Website: http://www.accessmylibrary.com/coms2/summary_0286-3386058_ITM


Wapforum(n.d.) New Global Organzation, the Open Mobile Alliance, formed to foster worldwide Growth in the Mobile Services Market Retrieved Oct 20 , 2009 Website: http://www.wapforum.org/new/20020612433New.htm


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

: The mobile Web service framework is for hosting and migrating Web services from another device is recommended an active service. The service framework is divided into six modules: directory manager, execution manager, SOAP manager, and migration manager, context manager, and discovery manager. According to Kim & Lee, The main elements about a mobile web services framework are below (n.d.);

Directory Manager

The directory manager manages web services of a mobile device. Since mobile devices have limited in terms of processor speed, memory space, and battery lifetime, the resources must be used efficiently.

Execution manager

the execution manager efficiently can manage the memory of a mobile device through the generation and deletion of a Web service instance. In detail, when a service provider receives a request message from a client, the execution manager searches a WSDL document in the directory manager and returns it to the client for input parameters.

SOAP manager

The SOAP manager is responsible for generating and parsing SOAP messages for the communication between a provider and a client. There are a number of SOAP toolkits available for mobile devices.

Migration manager

The migration manager determines a relevant target host using context information, which is detected by the context manager. The migration service provides reliability, because migration is carried out the request of a service provider. For example, if the battery level of an origin server is low level or a service cannot be supported by the location change, the service provider can request a service migration. At this time, the migration manager transmits the codes and instance of a Web service.

Context manager

Context manage is used for distinguishing candidate hosts from others, and manages the context of neighbouring hosts for migrating a Web service. If a service provider requires a migration, the context manager requests and receives the context information of neighbour hosts. Meanwhile, the context manager can collect context that is not applied to the suitability model to the migration manager.

Discovery manager

A client can get access to the service by searching for a service. But, in a mobile environment, specifically, in an ad-hoc network which can grow rapidly, the service provider and client cannot use the HTTP protocol as well as the broker. Therefore, a new method to publish and discover Web services is necessary. The proposed framework uses the manager for publishing and discovering Web services. The manager publishes Web services. Then, Web services publish only their service name unlike the publication of general Web services.

Reference

YeonSeok, K & KyongHo, L.(n.d.) A Light-weight Frame work for Hosting Web Services on Mobile Devices Retrieved Oct 29, 2009 from thomas.morsellino.fr/files/87701239280664kim.pdf

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

: Airline of the mobile flight booking service gives the convenience to offer their passengers engaging and creative services designed to streamline customers with WAP, SMS check-in and, supply them with up-to-the-minute, relevant travel information with SMS alerts and even click-through on system. SMS updates advising passengers of flight schedule changes, cancellations, pre-flight reminders, and even weather forecasts are sent to the passenger’s mobile phone(Mobiqa, n.d.). 3G provide special credit card with payments which work with online booking service.

In banking service, most of banks service is WAP and SMS mobile service. The WAP service specially provides some services that allow the access anywhere via mobile internet service. This mobile service is offered from mobile-service provider which complies with some banks for the mobile banking service.

In case of South Korea, Mobile baking services called m-banking have developed alongside mobile communications services by LG Telecom. The main banking services include balance checks and money transfers. And M-banking in South Korea is divided by the data transfer service (SMS), wireless browser or wireless access protocol (WAP), virtual machine (VM) technologies such as JAVA and integrated circuit (IC) chips (Lee, 2005). This service brings banking services to user’s mobile such as withdraw and deposit like payment using bank account. Basically, WAP or SMS services of bank are more different than an airline, because the banking service uses much details of user’s identification. Even if both mobile services are similar, mobile banking service must be cared and controlled by regulation as real banking service.

References

Mobiqa. (n.d.) Airline Product Suite Retrieved Oct 29 from http://www.mobiqa.com/airlines/products.html

Thomas, L. (2005) Mobile baking in South Korea Retrieved Oct 28, 2009 from http://store.ovum.com/Product.asp?cid=0&pid=31778&tnid=&tnpid=


Exercise 16

This is not required question to do.

Exercise 10

Exercise 10: Concurrency and Threading demonstration in Python

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

1. Thread Synchronisation

Thread Synchronisation is either to synchronize access to the shared resources, or to coordinate execution of threads. It is especially useful in avoiding conflicts when more than one thread requires the access of a single variable or other resources.

2. Locks

The Java programming language provides multiple mechanisms for communicating between threads. The most essential method is synchronization that is implemented using monitors. Every object in Java is joined with a monitor, which a thread can lock or unlock. Just a single thread at a time may hold a lock on a monitor. On the other hand, other threads attempt to lock that monitor so they are blocked until they can obtain a lock on that monitor. A thread t may lock a particular monitor multiple times; each unlock reverses the effect of one lock operation. (Sun, 2005)

3. Deadlock

Regarding application programming, as opposed to server implementation, thread pools pose some concurrency risks, because the tasks making up an application are inclined to be dependent on each other. Particularly, the deadlock is regarded as a significant concern. A deadlock appears when a set of threads creates a cycle of waiting and threads will be held up and cannot proceed.

4. Semaphores

Semaphores program the construct designed by E. W. Dijkstra in the late 1960s. Dijkstra’s model was the operation of railroads, considering a stretch of railroad in which there is a single track in which one train at a time is just allowed. Guarding this track is a semaphore. A train will keep waiting before entering the single track until the semaphore is in a state that permits transports. When the train enters the track, the semaphore changes state to protect other trains from entering the track. A train leaving this area of track should again change the state of the semaphore in order to enable another train to enter (Sun, 2009). In the computer version, a semaphore appears to be a simple integer. A thread waits for permission to proceed and then signals proceeded by performing a P operation on the semaphore.

5. Mutex (mutual exclusion)

Mutexis, as the abbreviation for “mutual exclusion, are one of the primary means for implementing thread synchronization and for protecting shared data when multiple writes happen. A mutex variable acts like “lock” protecting access to a shared data resource. The fundamental concept of a mutex as used in Pthreads is that a single thread can just either lock or own a mutex variable at any given time. Thus, even though several threads try to lock a mutex, merely one thread will be successful, and other thread will not own that mutex until the owning thread unlocks that mutex. Threads must take the turns accessing protected data (Barney, 2009)

6. Thread

A Thread is such an agent spawned by the application in order to perform work, independent of the parent process. While the term Thread and threading have referred to the concept of spawning (forking) multiple processes, more frequently they refer specifically to a pthread, or a worker which is spawned by the parent process, and it shares that parent’s resources. And Threads basically differ from processes in which they are “light weight” and “share memory”.

7. Event

In accordance to wikipedia, an event is an action that is usually initiated outside the scope of a program and that is handled by a piece of code inside the program. Normally, the events are handled synchronous with the program flow, that is, the program has one or more dedicated places where events are handled. Typical sources of events include the user (who presses a key on the keyboard, in other words, through a keystroke). Another source is a hardware device, such as a timer. A computer program that changes its behaviour, responding to events is said to be event-driven, often with the goal of being interactive.

8. Waitable timer

A waitable timer clarifies a synchronization object of which state is set to signalized when the specified due time arrives.

2. A simple demonstration of the threading module in Python (threaddemo.py) that uses both a lock and semaphore to control concurrency is by Ted Herman at the University of Iowa. The code and sample output below are worth a look. Report your findings.


Process Explain:
The threading module has been created by running a set number of 10 threads concurrently.

numtasks = 10

A semaphore is used with the maximum number of threads set to 3. The ‘Bounded Semaphore’ is used to ensure that the value does not outweigh the initial set value of 3. On the other hand, if it does, the bounded semaphore should not allow this to happen without it being detected in some way.

sema = threading.BoundedSemaphore (value=3)

A lock is set, in this case a reentrant lock – ‘RLock’. This is used with the acquire () method for the lock and the the release() method to unlock the lock, so that other threads can run simultaneously up to the maximum of 3.

mutex = threading.RLock()

When the program runs, the first three threads encountered begin processing. The remaining 7 threads are all recognised and locked, waiting until one of the processing threads has completed its tasks. The output shows that the threads do not have run and finish in the order they started before the next thread can start. Thread 2 had a shorter process time than Thread 1, so it was able to be released first, and then the next thread, in this case Thread 4, was started.

References

Barneym B., (2009). POSIX Threads Programming. Retrieved Oct 21, 2009 at https://computing.llnl.gov/tutorials/pthreads/

Sun Microsystems, (2005). Threads and Locks. Retrieved Oct 23, 2009 at http://java.sun.com/docs/books/jls/third_edition/html/memory.html

Sun Microsystems, (2009). Semaphores. Retrieved Oct 25, 2009 at http://docs.sun.com/app/docs/doc/805-5080/6j4q7emgq?a=view

Wikipedia, Event. Retrieved Oct 25, 2009 at http://en.wikipedia.org/wiki/Event_(computing)