Monday, July 20, 2009
Warming up with OSGi and its importance of Modularity
I feel Eclipse IDE is the best example of OSGi implementation and it’s advantages. After started working with Eclipse PDE i really feel the importance of OSGi framework. The framework defines an application development lifecycle management model, a service registry, an execution environment and modules. As per Wikipedia, OSGi Framework is a module system for Java that implements a complete and dynamic component model, something that does not exist in standalone Java/VM environments. Applications or components (coming in the form of bundles for deployment) can be remotely installed, started, stopped, updated and uninstalled without requiring a reboot; management of Java packages/classes is specified in great detail. Life cycle management is done via APIs which allow for remote downloading of management policies. The service registry allows bundles to detect the addition of new services, or the removal of services, and adapt accordingly.
If you can start developing plug-in using Eclipse PDE you can very well understand the importance and advantage of OSGi framework. In Eclipse terminology “plug-in” is nothing but “bundles” (OSGi terminology). After reading enough articles and blogs about OSGi i still see OSGi is an example of SOA. And there are many questions remain open in front of us for distributed computing with OSGi. Explore more with the below reference links on OSGi,
1. http://www.eclipse.org/equinox/
2. http://felix.apache.org/site/index.html
Wednesday, July 8, 2009
CICS Queues
Queues are sequential storage facilities, generally transitory in nature because of the dynamic nature of transaction processing. They are typically used to process requests or to pass data from one transaction to another . For example, data produced as part of a transaction is usually not printed until well after its task has been completed; the data waits in a queue for the print program to process it when there is no more urgent work to be done.
A queue is a sequence of data elements identified by a symbolic name. Each element contains record-oriented data of a type specific to the application that is to process it. Elements of different types can be placed in the same queue. For the general type of queue, transactions add (enqueue) elements to the tail of the queue and remove (dequeue) elements from the head of the queue in a first-in first-out (FIFO) manner. Each element must be read sequentially and when read is removed from the queue. Queues support multiple simultaneous requests to enqueue and dequeue elements, growing and shrinking in size according to the volume of requests. A transaction can requeue
elements to another queue for alternative processing.
You can use some queues differently; for example, as a common scratchpad of elements to be written, updated, read, and deleted by any transactions. You can also dequeue elements in a different order from the order in which they were enqueued. Before a queue can be used, you must define it. For example, a queue definition is used by CICS to identify the symbolic name and type of a queue, and to define the queue to the appropriate queue manager.
CICS supports the following types of queues:
Transient data queues provide the general queue functions. Temporary storage queues are typically used for shared reading, writing, and updating by multiple transactions; for example, as a scratchpad for shared data. Application programs can write, read, and delete data in a transient data queues, but cannot update such data. CICS provides the following types of transient data queues:
- Intrapartition transient data destinations
- Extrapartition transient data destinations
- Indirect destinations
Temporary storage queues are typically used for shared reading, writing, and updating of data by multiple transactions; for example, as a scratchpad for shared data. Also temporary storage queues can be used to store data either in main storage of the operating system, or in auxiliary storage on a direct-access storage device. Generally, main storage is used if small amounts of data are needed for short periods of time; auxiliary storage is used if data
is to be kept for long periods of time. Transactions can write, update, read, and delete data in a temporary storage queue any number of times until the queue is deleted.
Source : IBM Public Documents
Aveen (Technology COE )
Wednesday, July 1, 2009
Finding Fun in daily tasks
In a project it's esentially to mantain the team spirit high and to make people be enthusiastic about their jobs. It is known that people always work harder and give better results when they work for pleasure than when they work because they have to. And one of the secrets for a succesfull project is to combine the tasks with the pleasure of making them. You should keep in mind that it's not hard at all to share enthusiasm with the other team members. You just have to see the good sides of each task instead of the bad ones... You simply have to remember that every litle thing you do means another experience and teaches you something new about the world or about yorself.
So, just try to say "I like this" next time when you'll feel it. Like this the others will hear you and we'll get a bit of your enthusiasm and the project will work better. After all, isn't this what you want?!
Source -Internet
- Nandini (PMO Center of Excellence)