Using CORBA and Java for PBX Management
|
|
|
- April Hudson
- 9 years ago
- Views:
Transcription
1 Using CORBA and Java for PBX Management P. Hasselmeyer Information Technology Transfer Office Darmstadt University of Technology Wilhelminenstr. 7 D Darmstadt Germany [email protected] M. Andrew Bosch Telecom Kleyerstr. 94 D Frankfurt Germany [email protected] Abstract Telephone Switches are characteristically long-lived, evolving systems. We describe how a legacy two-tier system for telephone switch management was reengineered as a three-tier web-based application using CORBA and Java. In this solution the design-time advantages of portability and abstraction brought by an IDL information model are combined with the universality and ease of use of a Java GUI. Performance was shown to be largely unaffected by the addition of the extra tier, while CORBA was seen to bring unexpected new advantages in the area of scripting and RAD. Keywords Web-based operation and management, PBX, CORBA, Java, information model, CORBA Scripting. 1. Introduction Private Branch Exchanges (PBXs) offer a large number of features and require management functions which can evolve over time. The administration tools are usually complicated to use and require specialists to perform common (and not so common) tasks such as creating new user accounts, or restricting calls. With each new line of PBXs new management tools are introduced. Unfortunately, the lifetime of a PBX is rather long and technology evolved at a high pace during the last decades. Old systems may only be equipped with a V.24 interface and have a command line oriented interface. Later systems come with Windows-based software communicating via proprietary protocols over ISDN lines. As each user interface looks different, people performing management tasks have to be trained to use them all. Furthermore, the management console (usually a PC running Windows software) must be equipped with the right hardware interfaces and the corresponding software. To reduce the amount of training required as well as the amount of software needed, a single, consistent graphical user interface (GUI) is desired. Of course,
2 this goal cannot always be reached as some telephone exchanges offer features which other switches do not support. However, all PBXs have a common set of basic functionality. This includes for example user accounts. Some switches offer additional attributes for the basic functionality, others offer completely new functions. Depending on the type of difference the GUI has to be changed in an appropriate way. One way to tackle this harmonization would be to write new management tools that all have the same user interface but communicate with the switch in the appropriate way. A lot of code could probably be reused but this would still require a large number of different tools one program per PBX type. To add to this, there are often different software releases for one type of PBX. Each version may need a different administration tool because it offers different functionality or it employs a different communication protocol. Even if this problem could be handled, what about other administration tools which are unconnected with GUI concerns, such as for example batch processing? These tools would still be different for various PBXs. An integration of all models should therefore be addressed at a lower level. One method is presented in this paper. As shown in Figure 1, it employs a threetiered architecture; Java on the client side, CORBA for the communication between the client and the server, and servers for mapping CORBA-calls to the appropriate functions of the different lines of telephone exchanges. GUI Applet HTTP HTML pages Applets HTTP server ORB IIOP ORB WBOM server DLLs proprietary Switch software Web browser Client Server Switch Figure 1: PBX management architecture This paper is the result of practical experience gained in a two man-year research project called WBOM (Web-Based Operation and Management). In this project Bosch Telecom and the Darmstadt University of Technology developed a prototype of a Management system for one of Bosch s models of telephone switch. This system consists of two parts the switch itself on the one hand and on the other hand a server PC which handles all the management operations. The PC is equipped with a set of runtime libraries, which handle communication with the switch via a proprietary protocol. The project involved the realization of a prototype, which handles only a small part of the management. This part is the socalled Login User. This is basically a telephone account containing as most important attributes a name and a number. As added functionality a login user can log on at every phone connected to the PBX. This means that all incoming phone
3 calls are now routed to the telephone he logged on at. This functionality is needed when offices are assigned dynamically. Two major problems of administration are solved by this architecture in an elegant way: the demand for a thin client and the versioning problem. A web browser is not really a small piece of software, but it does not require a complicated installation procedure. In fact, most new systems today are already equipped with such a browser. As another plus, browsers exist on most platforms and the majority of operating systems. Browsers are even becoming available for PDAs and hand-held computers. Unfortunately, the missing Java Virtual Machines prevent such small systems from being used as clients at present. No doubt this problem will vanish within the next year. The second major problem solved by this architecture is the versioning problem. Many different software versions may exist within a PBX family. This is due both to the phased introduction of new functionality and localization for different countries. Each version might require a slightly different management tool. It is not always evident which is the correct tool for a given switch. The proposed architecture addresses this problem in a natural way. As the applet is downloaded just-in-time from the server and the server belongs to the switch, it is always the correct version for the administered type of exchange. This is similar to web-based management agents [1]. When designing a new management architecture, a number of issues have to be addressed. Among the most important are: the information model, the language and interface toolkit used on the client side, the server architecture. The next sections cover all the aspects mentioned before. An information model is introduced, the implementations of the client and the server are described, and an evaluation of the prototype is presented. 2. The Information Model For the existing proprietary interface between the management PC and the switch no explicit information model exists. Data is accessed via a large number of different functions. Due to their origins in the requirement phase of a Jacobsoninspired software development process these functions are known as use cases [2]. Each use-case represents a small management scenario, e.g. the change of an attribute of a login user. The prototype was designed to operate with a standardized protocol. It was agreed to use the Common Object Request Broker Architecture (CORBA) [3]. This has two advantages. One is the use of the Interface Description Language (IDL). With this language it is possible to describe an information model in an abstract, machine-readable, object-oriented, implementation-independent way. The second advantage is the availability of a suite of standard communication protocols, most notably the Internet Inter-ORB Protocol (IIOP). This allows different applications
4 to communicate in a standardized way with other resources regardless of the Object Request Broker (ORB) manufacturer which the individual resources use as a communication framework. The choice of using CORBA as the communication infrastructure appears to be backed by the network management community as there are a number of efforts using this technology together with SNMP [4] and OSI management [5]. Besides other advantages [6, 7, 8], the ability to cross the programming language boundary (here C++ and Java), the ease of use and the availability of development tools were the main factors that let us choose CORBA. After having decided upon a technology to use for communication, the existing data had to be described. First, all available data had to be found and structured in a consistent and flexible way. It was decided to adhere to one basic principle: to use object-orientation as much as possible. The resulting information model is shown in Figure 2. Figure 2: Information model It was a natural choice to model login users as objects. Each login user contains a set of attributes, most notably name and number. Attributes are not modeled as CORBA attributes in our information model because according to the current IDL syntax (CORBA 2.3 [3]), the access methods generated from IDL attributes do not raise user-defined exceptions. However, this functionality is needed here as the communication link to the switch might have broken down or the changing of a login user s name failed because the name is already in use. The solution was therefore to model each attribute with two functions (which have the
5 same names as the corresponding automatically generated functions for that attribute would have had) which are allowed to generate the required exceptions. A further feature of IDL which we decided not to use was the enum. We concluded that the possible alternative values for a type, usually represented by enums, were better modeled as a list of strings returned at run time. This would decouple the two sides, and usually allow the same client to be used although new possible values were implemented on the switch (see Figure 3 below for an example). Login users are allowed to use a set of services, like voice or fax. As services can be dynamically assigned to login users and as they contain a number of attributes, they are modeled as objects. The login user s attribute containing the enabled services is thus a sequence of service objects. Each service contains a given number of authorizations, which are modeled as objects as well. Authorizations allow or restrict access to features like three party calls, call diversion, and calling party number display. As each authorization can have a different number of levels and a different meaning for each level, an additional object called AuthorizationLevel is attached to each Authorization object. AuthorizationLevel objects are simple containers for the human readable identification strings of all available levels. To get access to all login users as well as to lists of other objects like the names of available S 0 busses, a root object was introduced, which is called PBX. This object is the initial reference for every client to access all further data. 3. The Server typedef sequence<string> seqstring; interface PBX {... seqstring getavailableservices();... } instead of interface PBX {... enum AvailableServices { Fax, Voice, Video,... }... } Figure 3: IDL: enum versus dynamic string table As shown in Figure 1, the server is based on two pieces of software. To communicate with the telephone switch, the server uses functions which are readily available as a set of so-called Dynamic Link Libraries (DLLs). These libraries are bound to the program code at run-time. The libraries hide the complexities of
6 establishing a connection to the switch, encoding the data, and decoding the response. Although written in C++, the libraries expose a functional interface to their users. The interface resembles the data format on the wire to the switch. For each function invocation, a packet has to be created and filled with the instruction identification and a varying number of arguments. Another function then sends the packet to the switch and receives its response. The response contains a result code and the requested data or, in the case of an error, some additional information about the source of the error. The other communication interface of the server uses CORBA. Here, too, the communication functions are supplied by the infrastructure of the ORB used. The object model described in the previous section was translated to C++ by using an appropriate compiler. Each interface defined in IDL is mapped to a C++-object containing all described functions and attributes. Of course, the functions do not contain any code as IDL only describes the appearance of the objects but not the associated semantics. This is what has to be done when writing the server: all functions described in IDL have to be filled with code, which realizes the intended functionality. In the case of the WBOM-server, this basically means translating the object-oriented function calls to appropriate function invocations on the PBX-side. IIOP proprietary WBOM server Figure 4: Internal realization of the server As Figure 4 shows, the translation of data from one side to the other is not done directly, but there is another layer of abstraction in between. The objects in the middle are used to encapsulate the peculiarities of the functional interface on the switch-side. One of these encapsulator objects is attached to each CORBAobject. Because these encapsulator objects handle communication, all that is left for the CORBA-objects is to implement behavior that is on a more abstract level. An example should demonstrate this. On the switch side, a new login user can only be created if it has a name and a telephone number. It was decided not to reflect such restrictions at the object model level as this would involve a tighter coupling with the business logic of a specific switch implementation. Therefore, on the CORBA-side, a login user can be created without these attributes having been set. CORBA-objects have this switch specific knowledge and do not forward the request to create a new login user to the switch until they have been assigned a name and a number. The actual request to add a new login user on the switch is handled by the encapsulator objects as they know which message has to be sent.
7 The WBOM-server was implemented in C++. This is due to the existing communication libraries being written in C++ and being present in native code. Wrapping the libraries with a layer of Java code would be possible but deemed to be too time-consuming for a prototype. Here, CORBA revealed one of its strengths the language independence. 4. The Client One of the goals of the new PBX administration framework was to use up-to-date standard technology. It was therefore decided to let the user interface run in offthe-shelf web browsers. The technologies employed are HTML and Java. HTML is only used to invoke the applet and supply some parameters to bootstrap it. The design of the graphical user interface (GUI) closely resembles the appearance of the pre-existing administration tool. The user interface is based on standard Abstract Window Toolkit (AWT) classes. An alternative would have been to use the higher level Swing widget set from Sun s newly released Java Foundation classes. However, these were only available in a beta version at the time of development and were subject to continual change. Applet Applet AWT AWT (user (user interface) interface) Corba Corba (Communication) (Communication) IIOP Web Web browser browser Figure 5: High-level applet design The basic layout of the applet is shown in Figure 5. It is based on AWT for the user interface and on CORBA for the communication with the server. Besides displaying the user interface, the main functionality of the applet is the transfer of data from the GUI to the CORBA-objects and vice-versa. Two examples of the applet displaying the details of a login user are shown in Figure 6. The classes of the applet are structured according to the design of the user interface. There are four different screens showing different attributes of a login user or a service. Each screen is represented and handled by one class. The left snapshot in Figure 6 shows the screen for displaying a login user s main attributes. To switch between each of the four screens, the user can click on the radio buttons at the top of the screen. These four tabs as well as the three buttons OK, Cancel ( Abbrechen ), and Apply ( Übernehmen ) are handled by a container object, which creates the window, manages the four screens, and distributes events to them. There can be at most one editing window per login user but any number of login users can be viewed and edited at the same time. All editing windows are managed by yet another object, which exists only once per applet. It performs the
8 startup of the applet, establishes a connection to the server, and displays the list of available login users. Figure 6: Two snapshots of the client s user interface To be able to communicate with the server, the client needs to have a reference to the root object. This reference must include the IP address of the server, the port the Object Request Broker (ORB) is listening on, and an identification of the desired object. All this information is included in a so-called Interoperable Object Reference (IOR) which can be represented as a string in a standardized way. The IOR of the PBX root object is transferred inside the HTML page starting the applet. It is supplied as one of the applet s parameters. As soon as the server has finished its initialization, it creates a new HTML page with a predefined name, which contains the invocation of the applet including the IOR of the created root object. 5. Performance Although administration is an interactive task and performance is not of paramount importance, it is interesting to see how a distributed solution performs in comparison to a more traditional approach. Objective time measurements have not been performed, as this is an interactive tool where only the user s subjective sense of a good response time is important. Furthermore, time measurements depend on a large number of circumstances such as network congestion, which are sometimes hard to reproduce. The performance of the presented solution can be assessed in terms of a number of different reaction times and delays. As the software uses a distributed approach, a lot of communication between the different parts is going on. Therefore, the reaction times are influenced by the speed of the communication. Most of the communication cycles involve the transfer of only a small amount of data, so that the actual data transfer time is rather short compared to the time
9 needed to prepare the data and push it through a number of software layers. All experiments have been conducted with a 10Mbit/s Ethernet connection between the client and the server and a 64kbit/s ISDN connection between the server and the switch. The different times that can be assessed are: startup time of the server, startup time of the applet, response time to user actions, communication time between the client and the server, and communication time between the server and the PBX. Startup of the server includes creation of the Object Request Broker (ORB) and logging into the PBX. In addition, a table of all available ISDN S 0 busses has to be built due to the way the switch assigns login users to these busses. Especially the latter action can take a few seconds, depending on the number of installed busses. The startup of the applet includes transferring the HTML page and the applet to the client. Furthermore, the browser might have to start the Java Virtual Machine. All this takes around 10 to 20 seconds. Currently, all applet classes are transferred individually. On one hand, this reduces start-up time as classes are loaded when they are needed and initially, only a few are required. On the other hand, each class needs a separate communication cycle. Putting all classes together in one Java Archive (JAR) could speed up the loading time. At the same time, using a signed JAR file, integrity of the classes could be guaranteed and the origin of the code verified. A further issue is the client-side ORB. This could be either the built-in VisiBroker client where the Netscape browser is used, the standard Java client-side ORB where a JDK1.2 plugin has been installed or a third-party product such as ORBacus. In the first two cases, download time can be correspondingly shortened. After starting the applet, the list of login users is requested from the server. Depending on the number of login users, this can take a few seconds, because each login user needs a new proxy object on the client side and needs to be entered into the list of available login users. For each login user two CORBA-requests have to be executed one to read the name and one to get the number of the user. This sets a limit on the scalability of the solution in an environment where there are many thousands of users. The response time to user requests is usually short. A few circumstances can slow down the reaction of the applet, though. When the attributes of a user are displayed for the first time, a few more classes have to be read from the web server. The complete set of a user s data is transferred from the switch to the server as soon as any of its data (other than name and number) is accessed for the first time. All further read accesses by the client operate on the cached copy of the user. This server-side caching reduces the communication time for reading a login user s data dramatically. As a disadvantage, the cached data could be invalid if another administration tool changes some data of a cached login user. It is currently not anticipated to allow multiple administrative tools to operate on the same data at the
10 same time. If this were ever desired in the future, the PBX would need to send notifications to all involved tools when any data is changed. The server would then forward the notification to the applet. Changes to a login user s data are not transferred from the client to the server until the button OK or Apply is clicked. As a result, changing the value of an attribute does not cause any delay as no communication is involved. As soon as the changes are to be committed, all of a login user s data is sent to the server. The client does currently not keep track of the changed attributes. Although this results in a large number of CORBA-requests, the time needed for this part is rather short. As the server receives the request to change an attribute s value, it compares the new value to the currently cached value. If these are the same, the change request is not forwarded to the switch. If the values differ, the new value is sent to the PBX, which requires a much larger amount of time than the CORBA communication request. As each changed attribute s value is transferred to the switch individually, the time to commit all changes is linearly dependent on the number of changes. This amount of time could be reduced if all changes were accumulated on the server and sent to the switch as one batch. Unfortunately, the server does not know which change is the last one in a sequence. To solve this, some kind of transaction context could be introduced. The client has to tell the server about the start and the end of the changes it is sending. The server is then able to accumulate all the necessary changes until it receives the end-signal. Of course, errors detected by the switch can only be sent to the client when it tells the server to commit all previous changes. From the previous sections one can deduce a general observation: the processing and communication time of the switch is the bottleneck. CORBA communication is performed quickly, but as soon as some data has to be transferred to or from the switch, the performance drops dramatically. As part of the evaluation of the new tool, its performance was compared to that of an existing administration program. As both tools acquire their data at completely different occasions, a comparison can be in favor of each depending on the evaluated scenario. The fairest comparison is probably the time for transferring all changes to the PBX. As the preexisting tool sends all of a login user s data in one go no matter which attributes changed, it is slower when there are only minimal or no changes. But the transfer time stays constant, even when a large number of changes have to be committed. The implementation presented in this paper becomes slower with the number of changes. So, for three or more changes the existing, traditional tool is faster. Of course, the proposed encapsulation in a transaction environment could level this difference. 6. CORBA Support for RAD and Scripting While C++ and Java both have their roles to play, there are other languages which are easier to use and better suited to the prototyping phases of a project. One of these is Python [9], an interpreted Rapid Application Development (RAD) language whose simple but powerful language model generally leads to a higher
11 level of productivity where performance and embedded functionality are not of primary importance. With the help of the Python ORB Fnorb [10], Python code can be plugged into existing distributed applications for simulation purposes. In our case we used it to simulate the WBOM-server and the underlying PBX. A dummy implementation running on a workstation could be written in an hour, this provided an environment to test the client without having to worry about the availability of a real PBX. A striking feature emerged from the combination of CORBA with a loosely typed language. The use of IDL to specify the interfaces added a previously unavailable level of type-safety to the components so specified. Similar to Smalltalk, Python methods accept and return objects whose type is only known at run time. Types are not specified statically and mismatches are first detected when a method for a particular object cannot be found at run time. However, in this case, the binding to the IDL interface allowed us to specify return and parameter types, conformance to which was then systematically checked at run time every time the component boundary was crossed. In this way a balance was struck between ease of use and security, and we had a high degree of confidence that our simulation was appropriate. A system controlled by an interactive client such as our Java GUI will always have two limitations. Firstly it is difficult to automate testing of the system as a whole via the client. Secondly batch processing (e.g. dealing with large amounts of PBX data in some programmatic way) is not possible. Embedded scripting languages, in particular TCL [11], are frequently used to provide these features for monolithic applications. Reacting to this trend, the OMG issued a Request for Proposal (RFP) for a standardised CORBA scripting language. Nearly all major scripting languages were proposed: after all, all they needed was an IDL language mapping and a supporting run time library to make them CORBAenabled. Amongst the submissions however was a newcomer called CorbaScript [12]. This language showed that CORBA opens up new possibilities for distributed applications in this area. As shown in Figure 7 CorbaScript exploits the reflection capabilities provided by the CORBA Interface Repository and constructs remote calls using the Dynamic Invocation Interface. For the user this means that, once the IDL file for the interfaces in question have been loaded into the repository, and an initial object reference (in our case the PBX) has been imported into the scripting environment (maybe by means of a naming service, or via a known file or URL) he can make remote calls directly using the names provided by the IDL interface without having to worry about compiling the IDL, starting the ORB and all the other technical details. In this interactive environment the user can explore and test his application. The scripting language provides a simple but adequate set of control structures and data types so that scripts can be written for regression tests. Libraries of scripts can then be created which could allow an end user to perform operations which were not foreseen by the GUI.
12 Interactive User Script Files IDL Files Native Object Code Java Corbascript DII Interface Repository CORBA IIOP CORBA Application Objects Figure 7: CorbaScript Architecture 7. Conclusion While we had no reason to doubt the feasibility of our approach to integrating a legacy management capability into a state-of-the-art distributed architecture, the process of implementation revealed initially unsuspected issues. Although Java and CORBA make an excellent match for thin clients, CORBA opens the way for much more. IDL not only provides the glue between distributed components but also offers a level of abstraction for modeling data. However, the information model has to take real-world issues such as performance and scalability into account without sacrificing generality. Our experiences showed that Java and CORBA enable the creation of a system which offers approximately the same functionality as a less flexible and less portable preexisting application. Furthermore, it automatically provides new capabilities such as scripting, RAD, and design level support. A logical next step would be the extension of the information model to cover all management functions of the PBX where issues such as the correlation of different objects could be addressed. References [1] Mullaney, P. Overview of a Web-based Agent. The Simple Times 4,3 (July 1996). [2] Jacobson, I. Object Oriented Software Engineering A Use Case Driven Approach. Addison-Wesley, Wokingham, England, 1992.
13 [3] Object Management Group. The Common Object Request Broker: Architecture and Specification, Revision 2.3. OMG document ftp://ftp.omg.org/pub/docs/formal/ pdf.gz. [4] Aschemann, G., Mohr, T., Ruppert, M. Integration of SNMP into a CORBAand Web-based Management Environment. Kommunikation in Verteilten Systemen (KiVS), Darmstadt, Germany, March [5] Canela, Z., Bardout, Y., Voyer, F. Integrating Web-Based User Interfaces in TMN Systems. Network Operations and Management Symposium (NOMS), New Orleans, LA, February [6] Haggerty, P., Seetharaman, K. The Benefits of CORBA-Based Network Management. Communications of the ACM 41,10 (October 1998), [7] Mazumdar, S. Inter-Domain Management between CORBA and SNMP. Distributed Systems: Operations & Management (DSOM), L Aquila, Italy, October [8] Garbanati, L. Enabling Electronic Communications for Local Competition Why CORBA? Network Operations and Management Symposium (NOMS), New Orleans, LA, February [9] [10] [11] [12]
A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA
A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA Yuming Jiang, Chen-Khong Tham, Chi-Chung Ko Department of Electrical Engineering, National University of Singapore, 10 Kent Ridge Crescent, Singapore
Distributed Network Management Using SNMP, Java, WWW and CORBA
Distributed Network Management Using SNMP, Java, WWW and CORBA André Marcheto Augusto Hack Augusto Pacheco Augusto Verzbickas ADMINISTRATION AND MANAGEMENT OF COMPUTER NETWORKS - INE5619 Federal University
What Is the Java TM 2 Platform, Enterprise Edition?
Page 1 de 9 What Is the Java TM 2 Platform, Enterprise Edition? This document provides an introduction to the features and benefits of the Java 2 platform, Enterprise Edition. Overview Enterprises today
System types. Distributed systems
System types 1 Personal systems that are designed to run on a personal computer or workstation Distributed systems where the system software runs on a loosely integrated group of cooperating processors
Overview of CORBA 11.1 I NTRODUCTION TO CORBA. 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary
C H A P T E R 1 1 Overview of CORBA 11.1 Introduction to CORBA 11.2 CORBA architecture 11.3 Client and object implementations 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary In previous
Research on the Model of Enterprise Application Integration with Web Services
Research on the Model of Enterprise Integration with Web Services XIN JIN School of Information, Central University of Finance& Economics, Beijing, 100081 China Abstract: - In order to improve business
Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur
Module 17 Client-Server Software Development Lesson 42 CORBA and COM/DCOM Specific Instructional Objectives At the end of this lesson the student would be able to: Explain what Common Object Request Broker
System Architectures for Integrating Web-Based User Interfaces into (Legacy) Database Applications
System Architectures for Integrating Web-Based User Interfaces into (Legacy) Database Applications Jun Han, Peninsula School of Computing and Information Technology, Monash University, McMahons Road, Frankston,
How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip
Load testing with WAPT: Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. A brief insight is provided
How To Build A Connector On A Website (For A Nonprogrammer)
Index Data's MasterKey Connect Product Description MasterKey Connect is an innovative technology that makes it easy to automate access to services on the web. It allows nonprogrammers to create 'connectors'
Building Java Servlets with Oracle JDeveloper
Building Java Servlets with Oracle JDeveloper Chris Schalk Oracle Corporation Introduction Developers today face a formidable task. They need to create large, distributed business applications. The actual
Architecture Design For Web-based Application Systems. Instructor: Dr. Jerry Gao Class: CMPE296U
Architecture Design For Web-based Application Systems Instructor: Dr. Jerry Gao Class: CMPE296U Architecture Design For Web-Based Application Systems - (1994-1995) Hypertext Web Systems: Graphic Web Browsers
Elements of Advanced Java Programming
Appendix A Elements of Advanced Java Programming Objectives At the end of this appendix, you should be able to: Understand two-tier and three-tier architectures for distributed computing Understand the
Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.
Chapter 2 TOPOLOGY SELECTION SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Topology selection criteria. Perform a comparison of topology selection criteria. WebSphere component
1. Overview of the Java Language
1. Overview of the Java Language What Is the Java Technology? Java technology is: A programming language A development environment An application environment A deployment environment It is similar in syntax
A Tool for Evaluation and Optimization of Web Application Performance
A Tool for Evaluation and Optimization of Web Application Performance Tomáš Černý 1 [email protected] Michael J. Donahoo 2 [email protected] Abstract: One of the main goals of web application
Load testing with. WAPT Cloud. Quick Start Guide
Load testing with WAPT Cloud Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. 2007-2015 SoftLogica
PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS
PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS Adrian Mos, John Murphy Performance Engineering Lab, Dublin City University Glasnevin, Dublin 9, Ireland Tel: +353 1 700-8762,
Base One's Rich Client Architecture
Base One's Rich Client Architecture Base One provides a unique approach for developing Internet-enabled applications, combining both efficiency and ease of programming through its "Rich Client" architecture.
Middleware Lou Somers
Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,
Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents
Agent Languages Requirements Overview Java Tcl/Tk Telescript Evaluation Franz J. Kurfess, Cal Poly SLO 211 Requirements for agent Languages distributed programming large-scale (tens of thousands of computers)
About Network Data Collector
CHAPTER 2 About Network Data Collector The Network Data Collector is a telnet and SNMP-based data collector for Cisco devices which is used by customers to collect data for Net Audits. It provides a robust
Client/server is a network architecture that divides functions into client and server
Page 1 A. Title Client/Server Technology B. Introduction Client/server is a network architecture that divides functions into client and server subsystems, with standard communication methods to facilitate
DiskPulse DISK CHANGE MONITOR
DiskPulse DISK CHANGE MONITOR User Manual Version 7.9 Oct 2015 www.diskpulse.com [email protected] 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product
An Overview of Oracle Forms Server Architecture. An Oracle Technical White Paper April 2000
An Oracle Technical White Paper INTRODUCTION This paper is designed to provide you with an overview of some of the key points of the Oracle Forms Server architecture and the processes involved when forms
Heterogeneous Tools for Heterogeneous Network Management with WBEM
Heterogeneous Tools for Heterogeneous Network Management with WBEM Kenneth Carey & Fergus O Reilly Adaptive Wireless Systems Group Department of Electronic Engineering Cork Institute of Technology, Cork,
zen Platform technical white paper
zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant
Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications
Chapter 6. CORBA-based Architecture 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications 1 Chapter 6. CORBA-based Architecture Part 6.1 Introduction to
3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19
3-Tier Architecture Prepared By Channu Kambalyal Page 1 of 19 Table of Contents 1.0 Traditional Host Systems... 3 2.0 Distributed Systems... 4 3.0 Client/Server Model... 5 4.0 Distributed Client/Server
SOFTWARE TESTING TRAINING COURSES CONTENTS
SOFTWARE TESTING TRAINING COURSES CONTENTS 1 Unit I Description Objectves Duration Contents Software Testing Fundamentals and Best Practices This training course will give basic understanding on software
FileMaker Server 10 Help
FileMaker Server 10 Help 2007-2009 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker, the file folder logo, Bento and the Bento logo
PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE
PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE TIGRAN HAKOBYAN SUJAL PATEL VANDANA MURALI INTRODUCTION Common Object Request
A QOS DISTRIBUTION MONITORING SCHEME FOR PERFORMANCE MANAGEMENT OF MULTIMEDIA NETWORKS
A QOS DISTRIBUTION MONITORING SCHEME FOR PERFORMANCE MANAGEMENT OF MULTIMEDIA NETWORKS Yuming Jiang, Chen-Khong Tham, Chi-Chung Ko Department Electrical Engineering, National University Singapore, 119260
S y s t e m A r c h i t e c t u r e
S y s t e m A r c h i t e c t u r e V e r s i o n 5. 0 Page 1 Enterprise etime automates and streamlines the management, collection, and distribution of employee hours, and eliminates the use of manual
Project Proposal Distributed Project Management
Proposal Distributed Management by Passakon Prathombutr Ashok Emani CS551 Fall 2001 CSTP UMKC 1 Contents Introduction...3 Goal and Objectives...4 Overall goal... 4 Specific objectives... 4 Significance...
Web Analytics Understand your web visitors without web logs or page tags and keep all your data inside your firewall.
Web Analytics Understand your web visitors without web logs or page tags and keep all your data inside your firewall. 5401 Butler Street, Suite 200 Pittsburgh, PA 15201 +1 (412) 408 3167 www.metronomelabs.com
FileMaker Server 11. FileMaker Server Help
FileMaker Server 11 FileMaker Server Help 2010 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker is a trademark of FileMaker, Inc. registered
Evaluation of Load/Stress tools for Web Applications testing
May 14, 2008 Whitepaper Evaluation of Load/Stress tools for Web Applications testing CONTACT INFORMATION: phone: +1.301.527.1629 fax: +1.301.527.1690 email: [email protected] web: www.hsc.com PROPRIETARY
AN IMPROVED REAL-TIME TRAFFIC FLOW MONITORING SCHEME
AN IMPROVED REAL-TIME TRAFFIC FLOW MONITORING SCHEME Yuming Jiang, Chen-Khong Tham, Chi-Chung Ko Department Electrical Engineering National University Singapore, Singapore 119260 Email: engp7450, eletck,
Oracle Service Bus Examples and Tutorials
March 2011 Contents 1 Oracle Service Bus Examples... 2 2 Introduction to the Oracle Service Bus Tutorials... 5 3 Getting Started with the Oracle Service Bus Tutorials... 12 4 Tutorial 1. Routing a Loan
HOW TO CONFIGURE PASS-THRU PROXY FOR ORACLE APPLICATIONS
HOW TO CONFIGURE PASS-THRU PROXY FOR ORACLE APPLICATIONS Overview of Oracle JInitiator Oracle JInitiator enables users to run Oracle Forms applications using Netscape Navigator or Internet Explorer. It
Test Run Analysis Interpretation (AI) Made Easy with OpenLoad
Test Run Analysis Interpretation (AI) Made Easy with OpenLoad OpenDemand Systems, Inc. Abstract / Executive Summary As Web applications and services become more complex, it becomes increasingly difficult
Service-Oriented Architecture and Software Engineering
-Oriented Architecture and Software Engineering T-86.5165 Seminar on Enterprise Information Systems (2008) 1.4.2008 Characteristics of SOA The software resources in a SOA are represented as services based
Service Governance and Virtualization For SOA
Service Governance and Virtualization For SOA Frank Cohen Email: [email protected] Brian Bartel Email: [email protected] November 7, 2006 Table of Contents Introduction 3 Design-Time Software
Architecture of the CORBA Component Model CORBA 3.0
Architecture of the CORBA Component Model CORBA 3.0 What is CORBA CORBA (Common Request Broker Architecture) is a distributed object-oriented client server platform. It provides: An object oriented remote
Introduction to Endpoint Security
Chapter Introduction to Endpoint Security 1 This chapter provides an overview of Endpoint Security features and concepts. Planning security policies is covered based on enterprise requirements and user
SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems
SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE
Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures
Part I EAI: Foundations, Concepts, and Architectures 5 Example: Mail-order Company Mail order Company IS Invoicing Windows, standard software IS Order Processing Linux, C++, Oracle IS Accounts Receivable
Elluminate Live! Access Guide. Page 1 of 7
This guide is provided to Elluminate Live! users to assist them to make a successful connection to an Elluminate Live! session through a proxy firewall. In some cases settings discussed in this document
Distributed Systems Architectures
Software Engineering Distributed Systems Architectures Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain the advantages and disadvantages of different distributed systems
Web Presentation Layer Architecture
Chapter 4 Web Presentation Layer Architecture In this chapter we provide a discussion of important current approaches to web interface programming based on the Model 2 architecture [59]. From the results
Lecture 19: Web Based Management
Lecture 19: Web Based Management Prof. Shervin Shirmohammadi SITE, University of Ottawa Prof. Shervin Shirmohammadi CEG 4395 19-1 Using the Web for Management Web browser UI connects with the management
The Efficiency Analysis of the Object Oriented Realization of the Client-Server Systems Based on the CORBA Standard 1
S C H E D A E I N F O R M A T I C A E VOLUME 20 2011 The Efficiency Analysis of the Object Oriented Realization of the Client-Server Systems Based on the CORBA Standard 1 Zdzis law Onderka AGH University
SAS 9.4 Intelligence Platform
SAS 9.4 Intelligence Platform Application Server Administration Guide SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2013. SAS 9.4 Intelligence Platform:
HPC Portal Development Platform with E-Business and HPC Portlets
HPC Portal Development Platform with E-Business and HPC Portlets CHIEN-HENG WU National Center for High-Performance Computing, Hsin-Chu, 300, Taiwan E-mail: [email protected] Abstract HPC Portal Development
Elluminate Live! Access Guide. Page 1 of 7
This guide is provided to Elluminate Live! users to assist them to make a successful connection to an Elluminate Live! session through a proxy firewall. In some cases settings discussed in this document
USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE
USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE Gonzalo Garcia VP of Operations, USA Property of GMV All rights reserved INTRODUCTION Property of GMV All rights reserved INTRODUCTION
Extending Desktop Applications to the Web
Extending Desktop Applications to the Web Arno Puder San Francisco State University Computer Science Department 1600 Holloway Avenue San Francisco, CA 94132 [email protected] Abstract. Web applications have
Kerio Operator. Getting Started Guide
Kerio Operator Getting Started Guide 2011 Kerio Technologies. All rights reserved. 1 About Kerio Operator Kerio Operator is a PBX software for small and medium business customers. Kerio Operator is based
RSM Web Gateway RSM Web Client INSTALLATION AND ADMINISTRATION GUIDE
RSM Web Gateway RSM Web Client INSTALLATION AND ADMINISTRATION GUIDE Installation and Administration Guide RSM Web Client and RSM Web Gateway 17 August, 2004 Page 1 Copyright Notice 2004 Sony Corporation.
FileMaker Server 12. FileMaker Server Help
FileMaker Server 12 FileMaker Server Help 2010-2012 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker is a trademark of FileMaker, Inc.
Software Development Kit
Open EMS Suite by Nokia Software Development Kit Functional Overview Version 1.3 Nokia Siemens Networks 1 (21) Software Development Kit The information in this document is subject to change without notice
Programming IoT Gateways With macchina.io
Programming IoT Gateways With macchina.io Günter Obiltschnig Applied Informatics Software Engineering GmbH Maria Elend 143 9182 Maria Elend Austria [email protected] This article shows how
How To Test A Web Based System
Testing Web-Based Systems-Checklists Testing Web-Based Systems -Checklist Overview-: Web-based testing should be RISK ORIENTED. This article describes the risks, presents the types of testing that can
Enterprise Application Designs In Relation to ERP and SOA
Enterprise Application Designs In Relation to ERP and SOA DESIGNING ENTERPRICE APPLICATIONS HASITH D. YAGGAHAVITA 20 th MAY 2009 Table of Content 1 Introduction... 3 2 Patterns for Service Integration...
DEPLOYMENT GUIDE Version 1.1. Deploying F5 with Oracle Application Server 10g
DEPLOYMENT GUIDE Version 1.1 Deploying F5 with Oracle Application Server 10g Table of Contents Table of Contents Introducing the F5 and Oracle 10g configuration Prerequisites and configuration notes...1-1
Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology [email protected] Fall 2007
Internet Engineering: Web Application Architecture Ali Kamandi Sharif University of Technology [email protected] Fall 2007 Centralized Architecture mainframe terminals terminals 2 Two Tier Application
TMA Management Suite. For EAD and TDM products. ABOUT OneAccess. Value-Adding Software Licenses TMA
For EAD and TDM products Value-Adding Software Licenses ABOUT OneAccess OneAccess designs and develops a range of world-class multiservice routers for over 125 global service provider customers including
Generating Automated Test Scripts for AltioLive using QF Test
Generating Automated Test Scripts for AltioLive using QF Test Author: Maryam Umar Contents 1. Introduction 2 2. Setting up QF Test 2 3. Starting an Altio application 3 4. Recording components 5 5. Performing
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design
Java in Education Introduction Choosing appropriate tool for creating multimedia is the first step in multimedia design and production. Various tools that are used by educators, designers and programmers
Information Systems Analysis and Design CSC340. 2004 John Mylopoulos. Software Architectures -- 1. Information Systems Analysis and Design CSC340
XIX. Software Architectures Software Architectures UML Packages Client- vs Peer-to-Peer Horizontal Layers and Vertical Partitions 3-Tier and 4-Tier Architectures The Model-View-Controller Architecture
Topics in Website Testing. [Reading assignment: Chapter 14, pp. 211-227]
Topics in Website Testing [Reading assignment: Chapter 14, pp. 211-227] How to test a website Easiest way to start is by treating the web site as a black box. Look at a sample website such as www.apple.com
IBM WebSphere Application Server Communications Enabled Applications Setup guide
Copyright IBM Corporation 2009, 2011 All rights reserved IBM WebSphere Application Server Communications Enabled Applications Setup guide What this exercise is about... 1 Lab requirements... 2 What you
Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat
Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat Page 1 of 14 Roadmap Client-Server Architecture Introduction Two-tier Architecture Three-tier Architecture The MVC Architecture
Effective Java Programming. efficient software development
Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of
Encryption and Decryption for Secure Communication
Encryption and Decryption for Secure Communication Charu Rohilla Rahul Kumar Yadav Sugandha Singh Research Scholar, M.TECH CSE Dept. Asst. Prof. IT Dept. Asso. Prof. CSE Dept. PDMCE, B.Garh PDMCE, B.Garh
Web Application Development for the SOA Age Thinking in XML
Web Application Development for the SOA Age Thinking in XML Enterprise Web 2.0 >>> FAST White Paper August 2007 Abstract Whether you are building a complete SOA architecture or seeking to use SOA services
Implementing SIP and H.323 Signalling as Web Services
Implementing SIP and H.323 Signalling as Web Services Ge Zhang, Markus Hillenbrand University of Kaiserslautern, Department of Computer Science, Postfach 3049, 67653 Kaiserslautern, Germany {gezhang, hillenbr}@informatik.uni-kl.de
Introduction to Web Services
Department of Computer Science Imperial College London CERN School of Computing (icsc), 2005 Geneva, Switzerland 1 Fundamental Concepts Architectures & escience example 2 Distributed Computing Technologies
AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev
International Journal "Information Technologies & Knowledge" Vol.5 / 2011 319 AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev Abstract: This paper presents a new approach
Enabling SSL and Client Certificates on the SAP J2EE Engine
Enabling SSL and Client Certificates on the SAP J2EE Engine Angel Dichev RIG, SAP Labs SAP AG 1 Learning Objectives As a result of this session, you will be able to: Understand the different SAP J2EE Engine
How to Configure Dynamic DNS on a Virtual Access Router
How to Configure Dynamic DNS on a Virtual Access Router Issue 1.0 Date 03 April 2012 Table of contents 1 About this document... 3 1.1 Scope... 3 1.2 Readership... 3 1.3 Terminology... 3 2 Introduction...
Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence
Web Development Owen Sacco ICS2205/ICS2230 Web Intelligence Brief Course Overview An introduction to Web development Server-side Scripting Web Servers PHP Client-side Scripting HTML & CSS JavaScript &
Distance-Learning Remote Laboratories using LabVIEW
Distance-Learning Remote Laboratories using LabVIEW Introduction Laboratories, which are found in all engineering and science programs, are an essential part of the education experience. Not only do laboratories
2. Accessing Databases via the Web
Supporting Web-Based Database Application Development Quan Xia 1 Ling Feng 2 Hongjun Lu 3 1 National University of Singapore, Singapore, [email protected] 2 Hong Kong Polytechnic University, China,
Performance Testing Process A Whitepaper
Process A Whitepaper Copyright 2006. Technologies Pvt. Ltd. All Rights Reserved. is a registered trademark of, Inc. All other trademarks are owned by the respective owners. Proprietary Table of Contents
ComTrader Technical Requirements
Technical Requirements 11. Februar 2011 Technical Requirements Change History Version Date Author Reason 1.0 07.01.2010 DBS Creation 1.1 06.10.2010 DBS Upgrade to 25.10.00 2.0 20.01.2011 DBS Adaptation
What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.
What is Middleware? Application Application Middleware Middleware Operating System Operating System Software that functions as a conversion or translation layer. It is also a consolidator and integrator.
