A comparative study between computer programming languages for ...

7 downloads 9887 Views 155KB Size Report
Nov 26, 2009 - of computer programming languages by compare their criteria's ... Keywords. Distribute System, Web Services and Object-Oriented.
A Comparative Study between Computer Programming Languages for Developing Distributed Systems in Web Environment K. Aldrawiesh, A. Al-Ajlan, Y. Al-Saawy and A. Bajahzar, Software Technology Research Laboratory (STRL) De Montfort University The Gateway, Leicester, LE1 9BH, UK.

Email :{Khalid,ajlan,yazed,bajahzer}@dmu.ac.uk ABSTRACT

1. INTRODUCTION

Web services are the next step in the growth of the Internet and permit active objects to be located on Websites providing distributed services to potential clients. The main advantage of Web services is that provides interoperating between different software applications and computer programming language running on a variety platforms. The high computer programming language uses by students, teachers and professionals have designed and upgraded rapidly by the developers and Interest Company. This paper focuses on the principle of the differentiation of computer programming languages by compare their criteria’s and features. The main purpose of this paper is to study, analyze, explore, compare and discuss the issues and measurements of these languages which nowadays have been a powerful means to assist human beings in many applications. This paper presents a view of the capabilities of each of language, and should help those trying to understand their technical similarities, differences, and capabilities.

As the augmentation, computer software, systems, technologies and services have become faster, cheaper, smaller and more powerful; they have also become more complex. These technologies are seemed visible at the filed of information revolution. Most of these technologies and systems are connected together over networks. The computer systems and their associated architectures and applications have been developed quickly by modern systems and languages. High-level languages have developed to make it easier to write computer programs. High level programming languages create computer programs using instructions that are much easier to understand such as Sun Java, C++ and C#. These languages are defined as Object-Oriented programming (OOP) which relates to the creation of reusable software objects that can be easily integrated into another program. An object is programming code and data that can be treated as an individual unit or component. OOP permits programmers to use programming objects that they have written themselves or that have been done by others.

Keywords Distribute System, programming.

Web

Services

and

Object-Oriented

In other hands, open Distributed System (DS) is identified as computing systems that are used in a wide variety of organizations, for a wide kind of reasons. In wide-area distribution, in nearly all enterprises there is some degree of independence of the components of the system. Different parts of an organization will have different ways of communicating internally and outwardly. Figure 1 shows the geographically DSs that managed by different organizations for solving large-scale computational [1]. However, Web services are an example of interoperable machine to machine interaction over a network. Web services are a piece of business logic accessible by the Internet using open system standards. They are a group of emerging and established communication protocols that include Extensible Markup Language (XML), Simple Object Application Protocol (SOAP), Universal Description Discovery and Integration (UDDI) and Web Services Description Language (WSDL) over Hyper Text Transfer Protocol (HTTP). Web services permit a number of solutions/applications to be integrated faster, easier and cheaper than ever before. They are expressed as a WSDL that is an XMLbased language[2-4].

"Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ICIS 2009, November 24-26, 2009 Seoul, Korea Copyright © 2009 ACM 978-1-60558-710-3/09/11... $10.00"

457

Figure 2. Shows a network with distribution systems

Figure 1. Distribution systems and different organizations

Distribution is transparent to contrast to a network, where the user is aware about that, several machines, and their location, storage replication and functionality are not transparent. DSs usually use some kind of client/server organizations [10]. DS computing is decentralized and parallel computing, using two or more computers communicating over a network to accomplish a common objective or task.

The main contribution of this paper is the design and implementation of a prototype system to support distributed system and its association by evaluating OOP language and its capability under open system environment. The paper is organized as follows. Section 2 describes the related work of DS and OOP environment. A brief of DS and its associated are explained in section 3. Section 4 illustrates language comparison of OOP language. A description of language comparison criteria is shown in section 5. An evaluation of system implementation is declared in section 6. Concluded remarks and future work is in section 7.

The main advantage of DSs is (1), allowing users to access remote resources, and to share them with other users in a governed way. (2), joined centralization of software and hardware viz. applications program, printers, scanners…etc. (3), DS connection has human-to-human interaction, e.g. email, video –conferencing. (4), they are more flexibility and performance than a personal computer [5].

2. RELATED WORK A. Tanenbaum et al [5], provide an introduction for computer programming language for distribution system. They have shown the history of DS to develop programming language in last 10 years. The authors focus on how could we choose a suitable language such, CSP, Occam, Ada, Java and etc to support DS. They examined some methods to know the ability and performance to execute different pieces of a programme on various processors. They showed different languages with different applications via argument 15 representative of distributed language such as, remote procedure call-RPC-, functional language [6].

In spite of these advantages, DSs have some disadvantages which are: (1), the main disadvantage is that a security as sharing increase, security is becoming more important systems offer little protection against intrusion during communication. (2), Transmission: when communication happens with more than one computer the delay might be occurred after a send operation is executed before data begins or arrive at another computer. (3), software complexity, the communication among distributed sites. Testing, debugging and tracing of such a software is complex so, time consuming and difficult. (4), simpler maintenance if compared with independent computer’s. Software updates, data backup and installation [3, 5].

E. Saridogan and N. Erdogan [7] proposed very helpful research in defining and showing relevant distributed programming language and real time. They highlight on architecture in DS for instance, layers and their middleware such as, transport, application…etc. Also, they indicate the issues to develop distributed programming language that based on object oriented regarding a high reliability and efficiency of these languages. They examined the distributed real time computing with OOP via comparative criteria for example, concurrency, communication, real-time aspects and etc then do implementation by C++.

Goals of Distributed System Distributed computing system has various kinds of technical issues that must be addressed in their design and these issues are undergoing to overcome in successfully designing. Thus, the main goal of distributed computing system is to join users and resources in transparent, open, and scalable way: Transparency: Transparency is high characteristic of decentralize system that is identified dealing with keeping various in data representation and the way that resources should access via users. Hence, regarding ISO, 1995, the transparency has many forms in a DS for instance, access, location, migration…etc and tab 1 presents some these differences as:

3. DISTRIBUTED SYSTEMS Computing systems composed of large numbers of computers joined by a high-speed network and that are usually called computer network or DSs [3, 5]. The DS is a set of group of independent computers or nodes that seems to its users as one local machine coherent system [5, 8]. The distributed computing systems include a collection of diverse processes that are spatially separated, and which connected with other by exchanging messages or data[9].

Table 1. Presents different form of factor transparency in a distributed system Transparency Description Keeps various in data representation and the Access way that resources are accessed Keeps where a resources is located Location Keeps that a resource may move to another Migration location

458

Openness: An open DS is a system that advances services concerning to standard policy that show the syntax and semantics of those services.

Such standards are important. A program written only in ANSI C++ is guaranteed to execute on any computer machine whose offering software that suitable or compatible to the ANSI standard. In practice most versions of C++ content ANSI C++ as a core language, but also include extra machine-dependent characteristics to enable smooth connection with many computers operating systems. These machine dependent characteristics could use sparingly [13, 15-19]. .

Scalability: Scalability of a system should be considered along at least three dimensions. In other word, the scalable system is one that might be easily be converted to accommodate alters in the number of users, resources and computing entities that affects it [1, 5, 11].

4.4. C Sharp Language

4. LANGUAGE COMPARISON

C# is an object-oriented programming language that has designed by Microsoft Corp, with syntax alike to Java. C# is intended to be a simple, modern, general-purpose and OOP language. C# is modern programming language designed for implementing vast range of enterprise applications that implement on the .NET Framework. A development of C++ and C# is new, type safe and object-oriented. C# code is translated as managed code, this means it benefits from the services of the common language runtime. These services include language interoperability, garbage collection, high security, and evolved versioning support.

As pointed previously, this section will provide general comparative of these languages viz. Sun Java, C ++ and C# as the following:

4.1. Sun Microsystems Java Java has employed by Sun Microsystems in June of 1991. Java is simple education language that has created and issued for students and general use. Java has become a common language in computer science regarding to its efficiency and flexibility. Java is pure language that used for programming and developing the distributed applications software. Java supports communication between computer to computer for instance, Client/Server or Peer-to-Peer among processes spread across a network. Also Java has some characteristics as follows:

5. DESCRIPTION OF LANGUAGE COMPARISON CRITERIA This section gives a brief description of Language Comparison Criteria that this paper depends on them to make a comparative study between computer programming languages for developing distributed systems in web environment. These criteria are [ 13, 14, 20, 21, 22, 23, 24]:

OOP environment: Java is modern programming language classified as an object-oriented programming with built-in application programming interface (API). Java uses graphics and user interfaces to create applications or applets.

High integrity: high-integrity system makes significant roles in communications, transportation, defense systems and power management. High-integrity system is crucial factors to support integrity data. It has been increased tendency to use software application. Because of the high integrity offers improve functionality, raise flexibility, manage in design and decrease production cost, it has most choice in developing an objectoriented programming language.

Network support: Java API includes multilevel supports for network communications. Low-level sockets can establish between agents, and data communications protocols which should layer on top of the socket connection. JAVA.IO package consists of several stream classes intended for filtering and preprocessing input and output data streams DSs and that due to, programmer which might be dealing with library through put this command at a top of code. An interface describes the operations, messages and queries class of objects, is capable of servicing without providing any information about it [4, 12-15].

Distributed system: distributed computing system allows a programmer to execute programs, methods…etc on remote computer or remote server. The distributed computing system is that accomplishes speedup via parallelism which is common reason for executing an application on open environment. As shown in fig 3, modern and an OOP language should be having like this advantage, Remote Method Invocation (RMI) which permits user to execute methods on remote servers.

4.2. C++ Language C++ was evolved by Bjarne Stroustrup at AT&T Bell Lab in 1980's. C++ is based on pure C language. C++ is purposed as support development of C. C is a part of C++, thus most C applications should translator to machine language i.e. 0s or 1s or codes unreadable then executable file. C++ is general design, low and high level programming language facilities. C++ is multiparadigm languages offering procedural programming, objectoriented and generic programming. C++ has been more common commercial programming languages. When compare C++ with Assembly language, C++ is high-level, but although it consists of many low-level features to directly manipulate the computer's memory. Hence, C++ is excellent language for writing performance software systems.

Figure 3. Client connects to RMI services and web server Simplicity and usage: A language should not include unnecessary complexity. It should have uniform semantic structure that reduces the number of underlying concepts. The language may be supported the users in, how can the language used. The language could be easy to use, learn and teach.

4.3. ANSI C++ The American National Standards Institution (ANSI) is famous organization standard that advances "official" and generally agreed standard definitions of various programming languages, e.g. C++.

459

Lang

Intended Paradigm use Applicatio mperative,objectWeb, oriented, generic, Java n, Education reflective Applicatio Imperative, C++ n, System procedural, objectoriented and generic Applicatio Imperative, objectoriented, functional. C# n, Web

Concurrency: A language could be included some factors to identify the characteristic for this language such as, concurrency, reversed word, built in security…etc. The concurrency is an important in behavior and efficiency. Concurrency is the one of the main sources of complication in program design, analysis and verification, it is more worth able in modeling. Thus, it has principle requirement for modern high integrity language. Platform: Platform is high advantage in modern language. Platform allows a language to run itself on many platforms of operating systems such as, Windows, Linux , Os2…etc. The language might be written on platform then run itself on different platform.

Standardiz ed No,Java Language Specification Yes, ISO and ANSI

Owner/ supporter Sun Microsystem s Originally AT&T then many Corp. Yes, ECMA, Microsoft ISO Corp.

However, this research is still ongoing to go indeed by considering, analyzing and examining their features and requirements. There is no limitation of this field regarding the literature review which has shown a selection of suitable policies that can support a wide range of applications. In the next phase of this work we are investigating the problems of security where policies can govern the choices in behaviour of a system. There is considerable interest in the Web on policy based techniques as a means of implementing adaptive Quality of Service (QoS) management, caching, persistence and security, to support modern applications, mobility and omnipresent computing. In addition, we intend to propose a policy to analyse method by graph transformations, which will provide an interesting way to represent abstract policies in an easy to understand style.

Maintainability: This criteria is very important when a programmer does compiling, debugging and tracing. A language shall be raised ease of program maintenance. It could emphasize e.g. consistently, clarity and easily to understand a program. The language might encourage a programmer or user to do documentation of program. Reliability: Reliability is very important method in most language that has increased its reliability when design and implement applications to avoid error prone features and to increase automatic discovery of programming errors. The language should be supporting evolution of reliable programs. In high level language could need some redundant, but not duplicative, specifications in programs.

Despite this research, we think it needs more study, analyse, compare these factors and go deeper to discover and obtain the facility, powerfully and performance of each language by applying many practices and that will enhance and develop an environment of DSs.

6. EVALUATION AND RESULT In this section we will illustrate the evaluation and result of language comparison criteria of Java, C++ and C#. This evaluation and result have taken high consideration by many factors and requirements to attempt exploring strength and weakness of these languages in open system environment.

7. CONCLUSION AND FUTURE WORK This paper has provided the key points of language comparison criteria and associated environment. Also we presented a cursory look at modern programming language by chosen some features and requirements that have developed and formed most high level languages. Most universities, colleges, schools, companies have used these languages, whatever the way academic or business.

This evaluation has used symbol to declare its recommended or not recommended that language regarding their factors and requirements. Therefore, in tab 2 we provide some high factors of these languages and their evaluation as the following:

Naturally, each language has strengths and weaknesses whether modern or old nor low or high level language. Adopting Java or C++ or C# in the meantime has the potential to increase capability, decrease programming difficulty, expense lower maintenance costs, and provide quicker time-to-market, new revenue streams and improved operational efficiency especially business.

 means high satisfy ,  means low satisfy and x means not satisfied. Table 2. Provides different high criteria of some programming languages. Language Criteria Java C++ C#    High integrity    Distributed system    Simplicity and usage    Concurrency   Platform x    Maintainability    Reliability

In future work, we will focus on the introduction and information about monitoring DSs and the discussion of methods by monitoring distributed open systems. The monitory in computer program supports the tracing, testing, performance evaluation and dynamic documentation. They will base on an experience to design, implement, develop, and use the monitoring system within distributed programming environment that called JADE which developed at Calgary University. It will focus on the use of monitoring tools to support the development of DSs that interact singly by message passing. And this article has good strength as evaluation the monitoring of DS by JADE system.

Benchmarks are formulated mimic a particular type of workload on a component or system. The computer programs used for compiling some of the benchmark data. The Computer Language Benchmarks site includes a large number of micro-benchmarks of reader-contributed code snippets, with an interface that generates several charts and tables comparing specific programming languages and types of tests.

8. ACKNOWLEDGMENTS The authors wish to acknowledge contributions from many people, including Hessian Zudain who is the STRL Technical Director at De Montfort University. We also acknowledge those with whom we have discussed issues addressed in this paper, including A. AlMarghilani, B. Zafar, O. El-Hassan, and A. Al-Gamdi.

Table 3. Preliminary Result of language Comparison

460

[12] J. Tobochnik and H. Gould, Introduction to Java. [13] A. David, W., Ada, C, C++, and Java vs. the Steelman. Ada Lett., 1997. XVII(4): p. 88-112, 2000. [14] N. King, The Case for Java as a First Language. In Proc. of 35th Annual ACM Southeast.. Murfreesboro, Tenn.: ACM Computing, 1997. [15] R. Cezzar, Guide to Programming Languages: Overview and Comparison.: Artech House, 1995. [16] S. Bjarne, , A history of C++: 1979--1991, in History of programming languages---II., ACM. p. 699-769, 1996. [17] R., Miller, An Introduction to the Imperative Part of C++. 1996. [18] FSF, Free Software Foundation 'Where's the Template?" Using and Porting GNU C'. 1995. [19] D. Kalev, ANSI/ISO C++ Professional Programmer's Handbook. 1st edition ed.: Que, Macmillan Computer Publishing, 1999. [20] M. Heng Ngee, , From Java to C\#: A Java Developer's Guide.: Addison-Wesley Longman Publishing Co., Inc. 480, 2003. [21] J. Trupin, , Sharp New Language: C# Offers the Power of C++ and Simplicity of Visual Basic., MSDN Magazine, 2000. [22] K. Jagun, , W. Andy, and K. Steve, Assessment of the Java programming language for use in high integrity systems. SIGPLAN Not.,. 38(4): p. 34-46, 2003. [23] B. Henri, E., G. Jennifer, and S.T. Andrew, Programming languages for distributed computing systems. ACM Comput. Surv., 1989. 21(3): p. 261-322. [24] G. Vladimir, et al., Multiparadigm communications in Java for grid computing. Commun. ACM, 2001. 44(10): p. 118125.

9. REFERENCES [1]

M. Baker, et al., Grids and grid technologies for Wide-area distributed computing. Software-Practice and Experience,. 32(15): p. 1437-1466, 2002. [2] D. Austin, et al., Web Services Architecture Requirements., W3C, 2004. [3] T. Andrew, B. Henri, and G. Jennifer, Programming languages for distributed computing systems. ACM Comput. Surv.,. 21(3): p. 261-322, 1989. [4] P. Heller, Enterprise Java 2, J2EE 1.3 Complete. Vol. 1st edition, Alameda, US. Sybex Inc. 2004. [5] A. Tanenbaum, and, and V. Steen, Introduction, communication, processes and CORBA in: Distributed Systems: Principles and Paradigms.: International edition. New Jersey, US. 2002. [6] J. Jeffrey, et al., Monitoring distributed systems. ACM Trans. Comput. Syst., 5(2): p. 121-150, 1987. [7] E. Saridogan, and N. Erdogan, A Real-Time and Distributed System with Programming Language Abstraction, p. 1-7, 1999. [8] K. Jeff, , Distributed software engineering, in Proc. of the 16th international conference on Software engineering., IEEE Computer Society Press: Sorrento, Italy,1994. [9] L. Lamport, Time, clocks, and the ordering of events in a distributed system.. 21(7): p. 558-565, 1978. [10] P. Reali, Building a Distributed Object System with.NET and J2EE Using IIOP.NET, 2003. [11] J. Balasooriya, et al., Distributed Coordination of Workflows over Web Services and Their Handheld-Based Execution in Distributed Computing and Networking. In Proc. of 9th International Conference Kolkata, India: Springer, 2008.

461

Suggest Documents