Abstract— It is no doubt that at the moment time is so important for every one in every kind of field. So it is the requirement of time to produce suck kind of products which consumes less time. But now it is right to say that there are such products available in market which really changes our lives. At the moment every manufacturing company trying to use such kind of CPUs that really helps to develop the embedded systems. Even if we observe our daily life we find such kind of thing s which we really ignored uses embedded systems. At the moment there are different components are used to develop the embedded systems. The most important component at the moment is Koala component which is developed by the Philips. Philips used Koala in developing the consumer electronic products. Koala has its own characteristics due to which Philips used it. There are also real time embedded systems which use such kind of components. There are different kinds of real time systems. There is a main idea behind real time system that they have to reply in a specific time to a specific task. There is a complete a life cycle of the real time systems. There are also different areas in which embedded systems are used at the moment. There is main advantage of Koala components that there are different graphical functions for different files even up to 100Mbps.
Index Terms— Koala component, embedded systems
I INTRODUCTION
A large area of computer systems is occupied by different types of embedded systems. Now we can say that above 90% of the CPU’s are used in the development of embedded systems. In the whole part of these embedded systems there are different categories including very small and large systems as well. We all know that now there are a lot of embedded systems involved in every kind of business. Even if we consider our daily life there are a lot of embedded systems involved like Alarm Clock, Break Fast Machine, Home Safety System, Traffic System, Automatic Doors, Telephone, Television, Mp3 Players, Camera, PDA, Printer, Scanner and Mobile etc… As we all know that the Automobile industry in the world is increasing day by day. If we consider an example of a Car, we will be surprised to know that there are such a huge number of embedded systems involved in a car. A latest model of can have round about 70 processors for different purposes like Engine Control, Audio, A/C control, etc… Embedded Systems are mostly Processor based like
General Processors, Micro Processors and DSP. Real Time systems are mostly responsible to deliver the correct results and also the time to deliver these results as well. We can consider a result as wrong result if it does not meet the time line of the result i.e. Late result = Wrong result. According to
Vibish.P.V, Assistant Professor, Department of Electronics and Communication Engineering, Asan Memorial College of Engineering and Technology , Tamilnadu, India (mail id: [email protected]).
IEEE the definition of Embedded systems look like “An Embedded Computer System: A computer system that is part of a larger system and performs some of the requirements of that system; for example, a computer system used in an aircraft or rapid transit system. (IEEE, 1992).[5] Now according to IEEE definition it could be considered that such kind of embedded systems are just like real time systems. The reason behind such kind of real time systems is that the result of system, because here we also consider the time factors to achieve the result except that we consider the logical factors. Now we can define embedded real time systems that “A system in which computer perform as a part of a large system and interact with external devices directly.” In general it is better to say that the use of component based technologies is better in development of embedded systems. There are also different design requirements for general purpose and embedded systems. Like for general purpose systems we have to consider the performance only. But for Embedded system we have to consider a lot of things like Timing, Cost sensitivity, Power consumption, Size and Weight, Safety and Reliability and Time to market. We also have to consider component acquisition, compatibilities, upgrades etc… COM and Koala are two different component models used for different purposes. COM is mostly used for general purpose model. Mostly we use COM in desktop and IS domains. But on the other hand Koala is mostly used for the development of embedded systems now a day. Koala Component technology is basically introduced and used by Philips. Philips used Koala components in the development of software in consumer electronics. There is model through which most Koala components interact is called pipes-and-filters. Then the result of this model is used by different threads. There is another component technology which is alternate to the koala component technology called Robocop component technology. The main purpose of this technology is just to cover the different aspects of embedded systems development. There is also a technology for the development of small embedded systems, developed by Arcticus systems is Robus Component Model. At the moment this technology is used by Volvo Construction Equipment. Now we can say that there are different Component Models used for the development of embedded systems. Everyone tries to develop such an efficient system which consumes less time. Someone can ask that why we do not use one component for embedded systems. But experiences have shown that different component have different characteristics. As we know that different platforms require different requirements at different levels so we try to use such a system which cover more of the requirements. Now just because of such reasons we use different components for the development of embedded systems but the basic principle behind the development never changes.
Software Component Models Review in Real
Time Embedded Systems
II REAL TIME EMBEDDED SYSTEM
Generally speaking embedded systems represent some general functionality. Now the reason behind the using of CPUs is basically due to complex functionalities of embedded systems. Now there are embedded systems both for ultra small systems and for huge systems as well. It is also a true factor that there are different requirements for both the systems. Due to this reason different characteristics of embedded systems refer to its requirements. In the mean time there are also some non-functional characteristics due to which design of an embedded system becomes challenge e.g.
A system fails if it does not meet the real time dead line. In real time properties there are also response time, time to execute in worst case, general execution time, deadline etc… We mentioned that there different requirements for small and large systems, so it concerns with the resource consumption. Now the main issue behind this requirement is the size of the system.
There is another requirement of the embedded system is considered with its time period i.e. Life Cycle. We know that embedded system is a part of a computer system so normally an embedded system has a very strong connection with its environment. There are such embedded systems available in the market having long life in different fields. The main advantage of long life is to reuse the software and hardware technologies. It is necessary for a long life system to accept these challenges.
Some time we have to concern with low power consumption. To reduce the size of code we have to concern with low manufacturing cost.
Mostly there are limited resources in embedded devices. In such kind of limitations there are certain important things like memory, power of processing and also the power related to battery. If we compare with other domains then it is difficult to increase the resources from different aspects like technically and economically. [6] There are such embedded systems available now in which the interaction with hardware devices is very obvious. [6]
III KOALA COMPONENT MODEL
Koala
Actually Koala is a small animal who likes to climb. But I have no concern with that animal because I have to work on Koala Component technology which is developed and used by Philips. There are some main aspects related to Koala Language. Koala is basically a component model and a language which describes the architecture and it is used to develop a lot of products by using different kinds of component.
Koala Language
There are certain important aspects in Koala language. [13] Requirements
When Koala was designed there were three main requirements found in 1996. As Koala used to develop different products so they develop a technique through which different components could be easily composed into different products. This technique is used as the main approach in developing different products.
The following technique should be able to work in an environment like resource-constrained e.g. television and video recorders etc.
In order to control the complexity of products the architecture should be precise as much as possible.
General Concepts
There is a small set which is known as inter face and consist of small set of elements related semantically. Type interface describes the syntax and semantic of related elements. There is an interface instance which is used to implement an interface within a component. The component is used as a unit for reusing. There is a unit of code known as module. But it is always a part of component. To connect an interface to another interface we need a cable or interface binding. It is also used to connect an interface to module or module to an interface. There could be a situation that we have to connect a list of interfaces to another special list of interfaces then we need a switch. Finally we also need a place to store all components, interfaces and data type definitions known as repository.
Binding and Bind Time
The concept of binding and bind time could be easily understood by an example described. We consider a product P having two different components A and B and also consider that A uses B. Now if A uses B then its mean that A has the right to call a function of B. It is also clear that both the components are compiled separately. But the call of A is bound by a linker to use the functions in B. There are two possibilities of occurring binding like Link Time and some time Run Time as well. As there are different component technologies which usually arrange runtime binding to accomplish the product binding. In such kind of situations component A use a pointer to a function. Mostly Koala is used in such a resource-constrained environment. In such kind of environment mostly binding is known and fixed at product time above 90% but such kind of binding varies from product to product.
Koala Components
There is also some Koala components which contain require interfaces, such kind of interfaces used to communicate with its component’s environment by using explicit connection points. These kinds of components are controlled by a third party. This concept is present in COM but its optional to use.
Diversity interfaces
To parameterized different components of Koala there are diversity interfaces. But there is no such a specific method for this purpose in Koala. It can be performed by using any technique of binding in Koala by bounding requires interfaces. There are also some expressions in Koala which are used for optimization reasons. By using such kind method it could be possible to introduce a component specific set of parameters. It is very important to know that there are such kinds of software available in the market now in which diversity products are known by the components at low-level.
Product-Line Architecture
To gather different kinds of components by using the provided services to match required services, Koala has such facilities to perform such kind of operations. But there is an important condition to perform such kind of operation that all the components follow the Koala model. There are also possibilities in Koala that architectural components do not match each other. To avoid such kind of mismatches it is necessary to define a set of simple architectural rules. There should be an initialization interface provided by all kinds of components. There are different components in Koala model so every component has its own interface. The component that cannot control the hardware specifies a very simple interface like IInit that has only a single function init. Such kind of components also provides some complicated functions as well like IPower. Sometimes there are such situations that a majority of components require functionality of other components while initializing.
There is another rule in Koala Model which concerns with Multithreading. There are a lot of small and independent activities in different kinds of control software used for consumer electronics. A basic example of such kind of activities is a control loop which is used to control and measure the quality of image. Such kinds of activities have different behaviors like hard, relatively hard and soft in real time systems. To differentiate between high level and low level frequency tasks we use a real time kernel having anticipatory scheduling. But there are still two problems arises…
As reusable components are different for different products so it is complicated for them to make so many assumptions regarding the architecture of the products. Now there is a technique to solve the first problem known as thread sharing. There are different software having different activities use pumps, and to process the message there are different message queues with different functions and to activate the pump function there is also a logical thread as well. There are different pump engines which serve as physically threads and also control the pumps. Such a technique can also be used as a solution to the second problem.
Third rule in Koala Model is known as notification. The example of such kind of rule is a TV system. If the broad cast does not receive signals then there must be a sign of error like no sound etc… There is also another example related to this rule is the searching of frequency for the next available
station. Now such kind of action could take few seconds or one minute as well. So there should be some response about the search either the station is found or not.
In different products the sign of notification is attached to a single client but it could be different for different products. To differentiate these notifications we have to model these notifications as outcalls by using optional requires interfaces. We can differentiate the whole architecture of the product into three different layers…
A computing platform layer is developed to utilize the hardware implementation.
A platform related to an A/V/data is developed to utilize the audio, video and data processing hardware.
There are also some layers of applications and services as well.
There are different components related to these three layers which can use the components of each other. Like the components of first layer could be used by the components related to second layer. At the same time components related to both first and second layer could be used by the components of third layer. To control a specific subdomain there is a specific set of subsystems obtained by every layer.
A.
Creating Products
There are different components involved in Koala Model which are stored in a storage area known as repository. The repository is such a storage area that contains a set of packages. These packages also contain different items like set of components and interface definitions but these are different from each other by their type like Public or Private. Now only one team can develop a package also in one location as well. The process of creating product is not very difficult. To create a product first of all a private directory structure is used to download a subset of packages. After this process a top level definition of component is created. Due to this process it becomes easy to instantiates and binds different components from that storage place which is known as repository. Mostly compound components are used in this process. Now from here it is decided that either the product is developed or not, if the product requirements do not match the existing component then from basic components we can create the new components. Also there is another situation when the existing basic components does not meet the requirements then we have to create new basic components. The whole process to generate the product is known as bottom up approach.
Handling Versions and Variants
We use such a CM system which has complete rights to control our software; there should also source code and documentation issues be involved.
There is another possibility that we do not use the CM system for permanent branches but also use for products having very short life.
There is another issue that for all permanent diversity present in different developing products we use only Koala model.
Now as we already know that a single team has the responsibility of each package at only single location but now it is also known that the CM system of each package maintained by itself as well. Now due to this characteristic it is possible that all the files of a package in its full version maintained by the specific package CM system. In the mean while the customers of that package have the access to its normal releases. The consistency issues with in that package have to maintained by development team of that package so the users do not have any concern the consistency of the package. They just have to concern with consistency between the different packages. To handle the variation within a package there are different Koala compound components which vary from product to product.
IIIKOALA COMPONENT MODEL FOR CONSUMER
ELECTRONICS SOFTWARE
To develop different software related to consumer electronics, object-oriented approach is ideal to use. A lot of Consumer Electronics (CE) using at present include embedded systems. As the CE start developing there were not so many challenges but a few years ago there were three major problems as described…
First there was a problem related to the size and complexity of software using in developing individual products. The second major problem related to developing products is diversity of products and also software used to develop that product.
The third major factor was related to the time of development.
Koala Model
In the designing phase of Koala there is a difference between component and configuration development. Builders of component do not make any kind of assumption related to configurations. The reason behind this issue is that components are used in configuration. In the same way the designers related to configuration are not allowed to make changes according to their requirement in components. Component
Components of koala are combination of different things like design, development and reusing is most important. As it is described earlier that interfaces are used by components to communicate with its environment. There are a lot of functionalities provided by a component by using an interface. In considered model, require interfaces are used to access every kind of peripheral functionality. Such kind of interfaces is also used to access the general services including memory management. The example of such kind of interfaces is TV. As in TV there is a tuner (hardware device) that receives signals through antenna as input and then filters all
the signals to find the required station and finally generates the output signal at a transitional frequency. There is description language to define the component boundaries known as Component Description Language (CDL). There are two different names are used to label the interface like long and other.
Implementation
In koala all components are independently designed. Interfaces are used to communicate each other. At the time of configuration the binding of interfaces is late. There is a header file generated by Koala with renaming macros as shown in figure 1.1… [10]
1.1 Overview of Static Binding Implementation
Koala Features
One of the important tools using for Koala is Koala Viewer. There are certain vital features of Koala Viewer as described… [11]
Designers have different experiences with Koala like testing and designing for other designers.
For over four years Koala has been tested in different ways. From different testing experiences it has been confirmed that Up-and-running-times of above hundred hours is common even with a lot of simulation updates.
There is another feature related to output of Koala which assures that the development with Koala is very rapid. There are different graphical functions in Koala for a huge number of simulation files which are over 100Mbps have been optimized.
Another feature is related to user friendly environment. Like there are a lot of function used by mouse and keyboard. There are different standard formats related to industry in which some are described below…
Meta-Software-Hspice (binary)
Start-Hspice (ascii and binary, .ac .sw .mt) Smart-Spice (float, xdr and double) Berkeley-Spice (ascii and binary) Raw (a format of Koala)
Mud-Pack (tool for analysis of power-network) There are also different ways to write Koala like… Matlab (ascii)
In Koala for enabling the offline-functions and also for saving the configuration there is a simple scripting language is used.
There is an advanced bus-editor used in Koala but not originate in different available tools using at commercial level. Bus-editor is used in Koala for a specific purpose like to convert the signals from analog to digital quantized.
In Koala there are a lot of internal functions are used like… To perform arithmetic functions there are different arithmetic operators like +,*,-, /, % etc…
To perform different logical operations there are different logical operators like! ^ | &
There are operators used for equalizing/nonequalizing like < > ^^
There are also certain operators to perform different kinds of mathematical functions like cos, sin, tan, log, pow etc…
In Koala there are also certain operators used to perform advanced mathematical operations like derivation, mean, standard derivation, integration etc…
There are also some design oriented functions available in Koala as well like threshold, trigger, sample etc…
There are different constants related to electrical and mathematical.
Now in Koala there is powerful and user-friendly editor called Equation Editor is used to integrate all such kind of function and operators for different functions.
In Koala there are also different Library function named as Koala Library. In Koala different kinds of functions related to read and write are stored in Koala Library.
There is another feature of Koala that it also runs on different kinds of Unix platforms like SunOS04, Sun Solaris X86, Sun Solaris, Linux ELF and DEC OSF4.
IVCOMPONENT BASED EMBEDDED SYSTEMS
It has become a true factor that embedded systems are facing a lot of problems now, the reason behind this issue is just due to cost of hardware and need for different products. The example of such component based embedded systems are smart cell phones, PDAs and different devices related to home or industrial requirements. To solve such a problem it is necessary to develop such efficient systems to overcome these problems in very short time. Even now in such an advanced environment there are such systems which are still developed by assembler or using C language. Now there are such embedded systems which are platform dependent, such systems are difficult to upgrade port and customize. There is another drawback of these systems that they are not reusable. But component technology provides the facilities to develop such a natural units for reuse.
Framework for Component-Based Embedded Systems
A framework is a combination of different things like constraints which are related to components and also among their relations to each other. But there are also some good feature obtained from those constraints included in a framework. Before identifying development platform for developing component-based embedded systems, it is necessary to identify the whole transportation for different components. It is just because of a reason that component is used as the basic unit in component-based embedded systems.
Now in the market different languages have been developed which use different techniques like Visual basic uses Visual Basic Control which are known as VBX and Java beans are used in Java. To make the development of application easier there are different tools to share and distribute the application. But there are special underlying services which are used by all of those approaches by providing communication and coordination which is necessary in the development process of the application. The communication among the components is possible through Plumbing which is the infrastructure of components. As there are different technologies have been developed but there are three of them have become standard which are OMG’s CORBA, Microsoft’s Component Object Model (COM) and Distributed COM (DCOM). There is also another knows as Sun’s JavaBeans and Enterprise JavaBeans. It is mentioned that Koala Model is another technology used for developing different embedded systems now.
V COMPONENT-BASED SOFTWARE ENGINEERING
Now to describe the quality assurance of component-based embedded systems there is a model. It is a true factor that the process to develop the simple system is very different from embedded system. So the QA Model should describe the both Components involved in the development and the whole system. Now there are certain standards available which are used to control different activities related to the Quality of the whole development process of the software, in such systems there are ISO9001 and CMM are well known.
Now in QA Model there are certain important aspects related to the whole development process of a component-based embedded system. [6]
VICONCLUSION
Now it’s very easy to say that embedded systems are very important to compete the requirements of current era. And there are different components used to develop the embedded systems. Now there are different CPUs are used due to certain important functionalities of the embedded systems. The effort to develop the embedded systems started in 1960’s. The first mass-produced embedded system launched in 1961. The embedded systems are computing devices controlled without any kind of key board or mouse. Real time systems are such systems to have the ability to meet the requirement within the required time under any kind of circumstances. There are a lot of things involve in Koala Components like interface, binding and bind time, diversity interfaces and product line architecture. Koala has some important features like rapid development. There are also some important features like Meta-Software-Hspice, Start-Hspice, and Smart-Hspice etc… There are also some features related to different functions like logical, arithmetic etc… There is a complete life cycle related to the development of embedded systems. So now it has become a true factor that Embedded Systems have become a important part of our lives in order to save the time.
REFERENCES
[2] Gang Quan, Introduction of Real-Time Embedded System Design, http://web.cecs.pdx.edu/~mperkows/temp/real-time-embedded-systems.pdf #search=%22Introduction%20of%20Real-Time%20Embedded%20System %20Design%22
[3] Embedded system overview
, http://en.wikipedia.org/wiki/Embedded_systems
[4] Sandeep Agrawal, Pankaj Bhatt. Real-time Embedded Software Systems An Introduction, August 2001.
[5] Ivica Crnkovic, Component-based approach for embedded systems, Mälardalen University, Department of Computer Science and Engineering Sweden.
[6] Xia Cai, Michael R. Lyu, and Kam-Fai Wong. Component-Based Embedded Software Engineering: Development Framework, Quality Assurance and A Generic Assessment Environment, International Journal of Software Engineering and Knowledge Engineering Vol. 12, No. 2 (2002) 107.
[7]Object-oriented programming,
http://en.wikipedia.org/wiki/Object-oriented_prog Component Programming in Dotnet ramming#Fundamental_concepts, (30-12-2006). [8]Component Programming in Dotnet
, http://www.csharphelp.com/archives/archive270.html [9]Object Oriented Basic Concepts and Advantages , http://eprints.ecs.soton.ac.uk/857/03/html/node3.html
[10] Rob van Ommering, Frank van der Linden, Jeff Kramer and Jeff Magee, London, The Koala Component Model for Consumer Electronics Software, [11] Koala, http://www.eleceng.adelaide.edu.au/Koala/ (19-09-2006) [12] Juval Löw, Programming .Net Components, Pblish By O’Reilly. [13] Ivica Crnkovic & Magnus larsson, Building reliable Component-based Software Systems, 1-58053-327-2.
[14] Component-Based Software Engineering for Consumer Electronics, http://www.nexwave-solutions.fr/frontend/whitepapers/CBSE_for_Consum er_Electronics(1).pdf.