This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Software components, their technologies and marketplaces
Section 1: Summary of the role of J2EE component platform in software components' deployments in distributed application.
J2EE platform uses a multi-tiered distributed application model overcoming the limitations such as scalability involved in 2-tier applications . Here, the application is separated into components based on their functionality which simplifies the development of distributed applications .The components are divided into the following tiers: Client tier (running on the client machine) Web tier & Business Tier (running on J2EE Server), and Enterprise Information System (EIS) which runs on the EIS server .
The different components that make up the J2EE application are: Application clients and Applets (running on client machine), JSP running on server and the EJB which form the business components running on the server.
The model adopted by this architecture, based on well-defined components enables it to take advantage of sophisticated platform services enabling maximum programmer productivity . The model has been successful in and simplifying distributed application which is highly required in today's complex, networked applications . This is the possible reason why most application server and enterprise information system vendors have adopted the J2EE standard and introduced products based on the J2EE platform specification . Some of the Key enterprise concerns that J2EE architecture seamlessly met, resulting in its popularity are: Programming productivity, Ease of integration with existing (legacy) systems, Wide range of J2EE components to choose from, Efficient system management resulting excellent system response, and High degree of security and control that can be exercised over both the client and servers 
The Enterprise Java Bean (EJB) provides a scalable, robust architecture which has been successfully used to develop and deploy several business applications in Java EE all over the world. The applications written using EJB technology are scalable, transactional and secure and very easy to develop and use. The latest version of EJB (EJB 3.1) further simplified the technology by adding new features such as the ones listed below: 
- No-Interface View: This makes using a local business interface in the local client view optional
- Singletons: A new kind of session bean which makes sharing of states between multiple instance of an enterprise bean component
- Asynchronous session bean invocation: Provides the application with the ability to invoke session bean methods asynchronously
- Simplified packaging
- Introduction of the "EJB Lite": This excludes a lot of the features of the complete version of EJB and is better suited for more simple applications.
Section 2: Analysis of the current situation at the "components marketplaces"
As software systems get bigger and more complex, their construction have started becoming more and more time and resource consuming, and also involves a significant amount of risk.  An alternative to developing a system from scratch is to use 'software component technology' wherein the developers assemble and integrate the complete system by using pre-existing components, to create the desired system functionality.  Here, the characteristics of cohesion and coupling become important drivers in the design and deployment . Although the term 'software component' has assumed slightly varying definitions and interpretations over the years, one widely accepted interpretation, endorsed by the author in  is re-quoted as: "A physical packaging of executable software with a well defined and published interface" . This definition focuses on the deployment aspect of components and how easily they can be integrated to form a larger complete system. 
The major driving factors in the development of a component based system are Reuse and Evolution - where reusing existing components help create a system which is highly fragmented and easy to maintain . This would ideally create a situation with minimal coupling where changes can be easily to be made to one part of a system without affecting other parts. This scenario requires a robust and standard "backplane" which helps form a component model which supports the assembly and integration, and communication between the different components . Examples of some popular component models are: DCOM (Distributed Component Object Model) from Microsoft largely confined to the windows platform , CORBA (Common Object Request Broker Architecture) defined by the Object Management Group which is highly language and platform and language independent, and Enterprise Java Beans (EJB) from Sun Microsystems which is the backbone of several Enterprise applications comprised of Java components.
The component Marketplace
When a project based on component based methodology is started, there are two distinct sources for components- The Commercial and Non-Commercial component marketplace.  These two can be roughly differentiated by the fact a commercial component market place is the coming together of buyers and sellers involving money transaction for procuring software component; whereas in the non - commercial sphere, there is no direct monetary compensation involved in the procurement process. The reason for the development of the COTS component could be sometime totally altruistic or for an increased status among community members . The products offered by these marketplaces are termed Commercial Off-the-Shelf (COTS) and Open Source Software (OSS) components . These two components which have their similarities and differences resulted in several debates among researchers, coders and managers regarding their feasibility, and some of these are summarised below :
Commercial Off-the-Shelf (COTS)
During system development, this is a convenient option when the organization does not have time, internal competencies or resources to develop a particular functionality . It is a popular choice especially with the management most usually due to the misinformation on the technical aspects of OSS. Using COTS fits in well with the general corporate practice of purchasing a component, which usually involves: requirement preparation, shortlist and selection of suppliers, signing of contracts and payment . It is also easy to find and verify vendors through advertising, organized sales and so on. There are also rigid methodologies, and tools for acquisition and integration . There is also an organized support services for the COTS product through Documentation and Users manual, Customer care hotlines, installation support, and regular patch releases . In a way, things are more streamlined and market driven with COTS.
However, one of the main disadvantages of COTS is that the source code is not available. The product that is purchased is usually a "black box" with interfaces for communication. Hence, any customization or bug/vulnerability spotting (and fixing) by the user is not possible. Because of the profit driven nature, where the value to the end user is not always the highest priority. There are also threats to user privacy and data security not only by hackers; but the vendors deliberately including backdoors in the application, which had previously occurred with major vendors .
Open Source Software (OSS)
The open source initiative has been Differing from the Management's perspective; OSS is often a popular choice with coders due to the backing of open source communities and transparency . It is also highly attractive because of its cost to acquire and the source code can be viewed or modified by the user according to their requirement. Since the code is viewed and maintained by a community of developers, the chances of spotting bugs and timely fixes are also much better compared to COTS .
Although, there is no cost of acquiring an OSS, there is a cost of ownership incurred like COTS for integration, testing and maintenance. Use of OSS can also be a cause of concern for organizations that wish to keep the developed application code proprietary . Referred to as the 'copyleft', some free software imposes a condition which requires all extensions, modifications and use of it to be released as free software . However, there are different variants of this rule and there is also some free software which does not impose the copyleft condition . Hence, the user needs to be careful about understanding the exact legal conditions while choosing an OSS . Despite there being quite a few portals which collect most open source projects, OSS has not realised its true potential is the lack of market penetration compared to COTS considering its non-profit and non-commercial nature, lack of advertising and
Section 3: A brief overview of 4 different COTS components from the healthcare sector
(a) The Spatiotemporal Epidemiological Modeler (STEM)
Licensing Type: Open Source, Under Eclipse Public Licence (EPL)
Environment Requirement: Java 5.0 and Eclipse 3.3
Maintenance and support: Source, Binary and Literature free to download from , Support from the community in the form of community forums can be obtained from 
This component has been developed as part of the Open source project named 'Open Healthcare Framework' (OHF) . The project which is still in the incubation phase consists of extensible frameworks and tools which emphasize the use of existing and emerging standards (like HL7), in order to develop infrastructure that is both interoperable and open source, thereby lowering Integration barriers. 
The STEM component is designed to help scientists and public health officials create and use spatial and temporal models of emerging infectious diseases, thereby increasing an understanding of the disease and helping to prevent its spread . STEM helps better understand epidemiology by facilitating the development of advanced mathematical models which can help find patterns and generate models involving multiple populations and interactions between diseases. 
The STEM coding is developed using Java and is organized as a set of well defined components using the eclipse plug-in tool framework. The components are integrated through a well defined "extension point" making it highly extensible. The eclipse framework also results in high multi-platform portability.
Vendor: University of Southern California
Licensing Type: Open Source, Under the GNU General Public License (GPL)
Maintenance and support: The Source, Binary and Literature free to download from , Support from the community in the form of discussion forums, bug fixes, user publications, etc can be obtained from 
Environment requirement: MATLAB version 7.1 (or higher), Java VM 1.5 (or higher)
This is a free MATLB application intended for Magneto-encephalography (MEG) and Electroencephalography (EEG) data visualization, processing and cortical source estimation with the help of a rich and intuitive graphical Interface.  This can be run as a standalone application on any system which supports the MATLAB runtime (Windows, Linux, etc). This can also be used as a component for building other systems using the MATLAB development environment by using the source code. 
(c) The UltraPort TCP/IP HL7 Listeners Vendor: Hermetech International Ltd.
Licensing Type: Proprietary software, with single computer installation and restrictions on transferability
Cost: Developer's License: US$ 50/-, Single Port Retail: US$ 150/-
Maintenance and support: The Company provides technical support by phone and e-mail . The user has the responsibility of installing the latest updates/bug fixes to ensure proper working of software (according to the licensing agreement)
Environment requirement: Visual Studio .Net (2005-2010)
This configurable software accepts HL7 messages sent to client's computer/server over TCP/IP to a specific port number and writes it to a file in a folder, and then automatically sends a HL7 acknowledgement back to the sender indicating that the message has been received successfully . It can either be used as a standalone application or, for software developers using Microsoft Visual Studio .Net (2005 -2010) a .Net object DLL is provided which helps the target application to directly interface with the UltraPort listener. This avoids the need of any TCP/IP socket programming. 
(d) The EasyHL7 ActiveX Components
Vendor: Hermetech International Ltd.
Licensing Type: It is proprietary software without redistribution fees. Run-time licenses need to be generated while distributing the developed applications to end customers.
Cost: Developer's License: first toolkit US$ 750/-, every subsequent license: US$ 350/-
Maintenance and support: The Company provides technical support by phone and e-mail . There is also extensive literature, example codes etc in the company website 
Environment requirement: MS Visual basic, Visual Studio .Net
This helps developers of integrated HL7 solutions to design, test, deploy, and implement HL7 software quickly and easily in a development environment like MS Visual Basic/Visual Studio .Net. Developers only need to focus on the application as all the HL7 requirements are taken care by the interfaces. 
Presence of two activeX DLLs (EHL7.dll and EHL7Interface.dll) allows developer to divide your application development into the 2 categories of: Data Processing and User Interfaces. 
- Component Primer, October 2000/Vol. 43, No. 10 COMMUNICATIONS OF THE ACM
- oftware Architecture: Foundation of a Software Component Marketplace; E. James Whitehead, Jr. Jason E. Robbins Nenad Medvidovic Richard N. Taylor. URL: http://www.google.co.uk/url?sa=t&source=web&ct=res&cd=1&ved=0CAcQFjAA&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.49.1611%26rep%3Drep1%26type%3Dpdf&ei=3yR4S7CvHdq5jAfg_pS4Cg&usg=AFQjCNFoxvGlZOEis22N7pdcSMnEW242fg&sig2=Ft50SlKwdpm54Yw-gCVE9Q
- COTS and Open Source Software Components: Are They Really Different on the Battlefield? , P D Giacomo, proceedings of the ICCBSS 2005 Conference, LNCS 3412, pp. 301-310, 2005