This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Abstract: Several representations for a software component have been made practical for component-based software engineering. These models are imperfect in such cases for their support in the specification of software components which can primarily deals with some issues like misuse of some components, for avoiding such issues comprehensive specification of system components can be then required where components are vigorously adapted and can be used at run time over the internet. Such dealings can be done with semantic usage with its quality in syntactic phase of a system/software component specification. Some technologies like .NET and EJB are having some characteristics than can help to a developer to build up components which can be reused/distributed etc. As each technology have its own way of performing their tasks and have its own implementation for those tasks such as remote call method call but both are to be used for developing the distributed components.
"A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties" .
Component is a binary unit which uses a standard interface method for importing and exporting the functionality to the system. Composition of components can be handled by systems such are event-handling, dynamic linking, layout management. An application framework is used to built-up of components and to compose it. These components communicate through an interface amongst each other with IDL (Interface Definition Language) which is supposed to indicate methods, names and parameters in programming language. When a component execute an application so it will be stable until next command which will be called for another application, therefore a component may have no any constant position at all. It also lost its memory amongst the performances of more than one application and can't keep anything in its memory. So for this step component may have to keep setting for any application so that it may be able to keep its storage or memory. Szyperski says that, "There is no use of having multiple copies of a component in a system. That may be true for a non-distributed application when making distributed systems though, redundant copies will in some cases be of great use" .
Distributed component are used without their physical location by several applications. In such an environment some unnecessary applications of a component supports higher tasks which are done by one component like load balancing etc. If such types of distributed components are made useful and costless so it will be an easier way to standardize the components for clients so that they may rely on components which can be used without updating the component, and the benefit of making it standardize is that used component made it possible for making new components .
Common Object Request Broker Architecture is "a standard for writing object oriented distributed systems" . In this type of platform applications written in any language like C++, Java etc may run on several operating systems which may interact with each other. As CORBA can't handle components as compared to EJB so it depends on choosing to define a new component. It is used to connect distributed objects and is responsible for those objects which are requested at that time when application are on run time. ORB can handle the communication whenever there is involved several numbers of distributed object .
Fig 1. How ORB is handling communication between objects.
As .NET is on fast track for performing its tasks, so .NET Remoting is related to one side of it. But there are many components which all are doing its performance and it is developed by the DCOM specification. So replacing all of the expensive DCOM components which are being used by several companies is difficult but .NET Remoting can access another domain application objects. In .NET the components not only work in local site but also in network through a remote application. This accessing of remote application turns to proxy which it couldn't communicate direct with remote component which can be called as real remote component. The remote object quite think about a method call when a client goes for it, so that method/application call is then sent to proxy side which is then decided there to turn the call in a way to remote object .
Enterprise JavaBeans (EJB)
Enterprise JavaBeans is architecture for building up of enterprise applications from server side component. It was first developed by IBM in 1997, later on Sun Microsystems developed as EJB1.0 and EJB1.1 in 1999 and then improved as EJB 2.0, EJB 2.1 and EJB 3.0 by the Java Community Process (JCP). EJB is implemented on Java programming language and is server side components. EJB component can be congregated in a container. Its task is to handle the EJB component environment and to support that how such environment should behave to situations of several components. As set of vendors are developing different containers so the behavior can be supported by the vendors and the container are being implemented regarding to EJB components. The functionality provided to container can be under limit as well, so it can work according to a standard .
It is applications components which run in application server. It support the accurate command of large scale or critical applications of a system, it also include applications which are based on distributed object architecture, multitier which can run/forward applications to server from the client side. Applications logic is the separation into some of business objects which can be implemented in application server.
EJB architecture has a standard model for Java applications server which is able to support 'Write Once Run Anywhere' (WORA) portability. It is one of the major views of Java technology. JVM (Java Virtual Machine) give permission to Java application which can be run on the system, but some additional services will be required to server components which can't be provided directly to the JVM. So some other services like server application or distributed object infrastructure i.e. CORBA, DCOM etc can provide it to JVM for programming interfaces to access services and its components.
2.3 EJB Specification
It defines a usual model which can support complete portability for Java applications which can be accessed by any user to implement maintenance for EJB components. Such systems like CORBA, COM runtime system, Web server systems etc are modified to maintain the portability of EJB components.
2.4 EJB Technologies/beans
Three types of EJB technologies (Session beans (SB), Entity beans (EB), Message-driven beans (MB)) are used with their own features which seems to be a disadvantage for seeking knowledge against EJB to learn it quite efficiently, as making decision against each technology is somehow difficult that which technology is to use and where, which may affect the usage of these types of technologies.
Session beans: It is a business process which is responsible for connection to databases, calculations etc.
Entity beans: It can be somehow like data objects, a product or storage etc. For example, a stock trading system where its engine are performing tasks with their stocks. Where stock trading engine is Session beans, and stocks are Entity beans.
Message-driven beans: This type of beans is somehow same to Session beans in some features. But it can be differ only by using messages .
Enterprise JavaBeans is used for Java server components as a development and deployment model. Components are supposed to be a pre-developed part of an application code which can be deployed in systems of application. JavaBeans is used a component model for Java technology which are used for handling the reusing the development components. Its architecture enlarges the components of JavaBeans to maintain the server components. Basically the application server is running by the server component which is by itself an application component. Java Virtual Machine gives permission to Java application to run on any operating system, but certain additional services are required for server components which are not allowed by the JVM. Services like COM, CORBA are delivered by a distributed object or by an application server. Enterprise JavaBeans server components classify some standard interfaces for Java application servers. Enterprise Java platform is familiar with the individuality of EJB components. It is include of some definite Java application programming interfaces which can make interface to enterprise-class services. Enterprise by itself involve in highly reliable, secure and distributed applications. Applications may have control to some services like transaction services, data access and persistence services etc which are being implemented on several platforms using their required technologies for making convenient application systems. An interface to infrastructure services is provided by the Enterprise Java APIs in case of implementation.
Such Enterprise Java APIs are,
Enterprise JavaBeans (EJB) API provides portability to an application servers and execute some services on behalf of application components by a server component.
Java Servlets and JSP (Java Server Pages) API are able for maintaining HTML and session execution for browser clients.
Java Messaging Service (JMS) API is responsible for communications of several systems that support messaging, like publish-and-subscribe services.
JDBS Database Access API has control on relational databases like DB2, Oracle and SQL Server.
Enterprise JavaBeans is requirement for vendors from Java server-side framework through which EJB server implementations can be created. Developers are agreed to use it as a business need as they will have not to worry about implementation of the framework and which can provide help to their applications.
EJB depends on particularly resourceful distributed object architecture which relies on such standard protocols. It is appropriate for large and small applications. EJB environment support Web based applications side devices .
It is silently but moving in haste toward the software development in a very short time. According to Microsoft, it is "revolutionary new platform, built on open Internet protocols and standards, with tools and services that meld computing and communications in new ways" .
.NET is new atmosphere for developing & operating software applications. It provides a framework for internet centric industry standard, which can make possibility to fit applications, data sources and other information using Web services. It has the capability to enable software for becoming platform and independently for a device. Platforms supported by .NET are Windows XP, 2000, ME. But it's mandatory to be noted that not all framework are supported by these platforms. E.g. ASP.NET is compatible with Win XP/2000, as Win ME and 98 can't be used for development process.
Tools for .NET
Following tools can be used for developing .NET applications
Framework SDK: It has compilers for programming languages like VB.NET, C-Sharp, etc and some other convenience which can be useful for development process.
ASP.NET Web Matrix: It is mostly friendly for Win XP users, which uses ASP.NET framework on systems.
Visual Studio (VS) .NET: VS can support mostly all languages like VB.NET, C-Sharp, C++ etc. It is used for designing, developing, debugging etc which can help in completing the development platform of .NET applications and its Web Services. It handle tools for building up both Web and Windows applications which have full data access tools, like it can handle errors such as remote debugging, local debugging etc.
Source code of .NET application which can be developed in an uninformed programming language for supporting development for .NET framework which can be compiled during the run time of .NET framework. During compilation/runtime .NET will have the result for more files which consist of IL-code. It will not be compiled to its native code, until it is not run. JIT-compiler which is a part of CLR can handle the compilation. This code is called managed code. CLR compiles the source code of IL-code which is not the virtual machine as it is not running applications which virtual machine does. The following model shows compilation of .NET application .
Fig. 2. Common Language Runtime.
Component specification in EJB and .NET
Component specification: It can be defined as, "a description of a component's function in terms of its output values for specified input values under specified conditions, and required non-functional behavior (e.g. resource-utilization)" .
Specified components are being used by the users as black boxes, so that they are not familiar OR they can use it without knowing its depth. A term 'interface' is the way of access to component and it can let users to give all of the information they required for it and are well known to the component operations like working of its source code and setting up the arrangement/installment of the component. Source code can't be accessible or shown to users in case of a component which are in black box. So component specification can be similar to interface specification which depends on the operations and environment dependencies of a component. Enterprise JavaBeans, CORBA (Common Object Request Broker Architecture), COM are such standards of component technology which can make available frameworks for setup and defining of server side components .
Component is an executable form of .NET applications and certain services are needed for components after compilation. It can be run on many .NET applications and offered data and some services like communications, graphics etc to Web Services which are running on the server side. A .NET component is also operated on Windows form but as compared to Web Services the Windows applications are less to it. Programmable interface are also offered to client applications from the .NET components and this interface have set of methods, properties which are mentioned to classes in the component and can support the services which are offered by the component. The services are exposed by the classes by some way of methods in component's interface. The .NET components are pre-compiled class with a format of Dynamic-linked library (.DLL) and during the execution time the .NET components are called for building up and for testing by the consumer applications into the memory and can be added to certain .NET applications during the execution time as plug-in services, and either all DLL components have several set of classes or each DLL have single set of class. Let us take an example, if you want to build up .NET Dynamic-link library which can support remote data access, so it could be possible that DLL require separate classes for their database, also it can have single DLL which is supposed to do error handling in the applications and this error handling may have a class from DLL which are required by the consumer applications.
.NET includes certain process like in-process and out-of-process applications. The differences amongst them are,
In-process applications doesn't need any response call so it execute fast and client side are able to access the component without referring to Windows applications. While out-of-process are in constant form as compared to in-process components. The advantage of an out-of-process is that it does not damage the consumer application if any of its component loss, but the in-process not only loss its own component but also does of the consumer ones .
Differentiation amongst such technologies such as .NET and EJB are quite complicated but as EJB is somehow an older technology as compared to the .NET technology. EJB is also tested by the latest and contain much information regarding to it which is important for knowing its features which are considered as standardize. While .NET have advance characteristics/features as compared to EJB technology such as communicating with the applications of .NET Remoting which can be used easier to adjust the specific purpose. So a component that can be reused from the other one may have their own interfaces and EJB have possibility to show such interfaces for components and how they react which it define several methods which can be responsible for handling the damaging of the object components, so a developer can also enhance some features regarding such case from the client side and these methods/features are will be a part of the interface of the components which can be accessed by the client before building up the component. But .NET component does not support such methods which are predefined for the applications/components that can be added by the .NET Remoting facility.
As .NET and Enterprise JavaBeans (EJB) have same type of functionality but they can perform it in different way during the execution of the distributed components. In .NET connectivity of the remote component are supported by software of server which is implemented by the component programmer in the same client side application. It responsibilities are to collect connections from the developers/clients and connect them to the component. While these remote connections have different performance in EJB technology such as, an application server (container) will have to control the EJB components. The .NET can handle the progress of the distributed components as compared to the EJB technology. So while dividing and distributing the applications it is then easier to evaluate its performance referring to supporting the remote components. As there are several types of application like server and client components which are quite to similar to each other but one is responsible for stateless component and the other is responsible for state full components which make differences amongst them. Stateless components applications are sent to remote object for each method call before sending it to the state full components. There are also states of components like state full components and stateless components, so while programming a component it is being affected whenever a component is taking to have a state OR in .NET it is also be supported that how server of the remote object can be programmed. Comparing both of the technologies i.e. EJB and .NET, a component can be obtained in any state like stateless or stateful, so the Session bean will be used for it in EJB. While in case of .NET components some other methods like single call method is used for stateless components and for stateful components the client activation is used .