Distributed software configuration


















This is a preview of subscription content, log in to check access. ClearCase MultiSite: Supporting geographically-distributed software development. Springer-Verlag, October Google Scholar. Michael L. Putting Objects to Work on a Massive Scale. In Zbigniew W. Ras and Maciek Michalewicz Eds. The entity-relationship approach to information modeling and analysis. Amsterdam, The Netherlands: North-Holland, Janet M. Drake and W. Contents Exit focus mode. Please rate your experience Yes No.

Any additional feedback? Submit and view feedback for This product This page. View all page feedback. Component-based development is distinguished from object-orientation in that systems are defined by the composition of black Abstract - Cited by 8 1 self - Add to MetaCart Component based development is seen as a way to increase programmer productivity and reduce software maintenance costs through the reuse of off-the-shelf software components.

Component-based development is distinguished from object-orientation in that systems are defined by the composition of black-box components that interact according to well-defined protocols. Current component models define interaction protocols between components as object interfaces. Yet all but the simplest component models define interaction protocols that involve multiple parties, many-to-one communication or concurrency between communicating parties.

We introduce a model of component interaction that addresses the limitations of object invocation. This interaction model is u We introduce a new model for describing the behavior of complex interconnection networks in the presence of faults. Using our model it is possible to obtain the detailed behavior of a faulty telecommunication network by specifying some parameters that describe its physical characteristics.

We descri Abstract - Cited by 7 1 self - Add to MetaCart We introduce a new model for describing the behavior of complex interconnection networks in the presence of faults. We describe our model, we show how it can be applied to study some real network management structures, and we give some experimental data to evaluate its relation to existing standard analytical models.

This complexity gave rise to automated network management NM systems that interact with network elements NEs to gain data about their behavior and performance, and to control their behavior by setting operational parameters. Several protocols have been proposed for the interaction between NEs and NM systems. At present, the Simple Network Management Proto The ability to construct a software system from separate pieces while the system is being used is a feature which has become more prevalent and important in recent years; in fact, the ability to dynamically compose a system has existed in various programming languages and computing systems for some Abstract - Cited by 6 5 self - Add to MetaCart The ability to construct a software system from separate pieces while the system is being used is a feature which has become more prevalent and important in recent years; in fact, the ability to dynamically compose a system has existed in various programming languages and computing systems for some time.

The Programmers Guide would be the best if you're already familiar with ZooKeeper's fundamentals and looking for a starting point to develop real-world applications using Apache ZooKeeper. As you could find out from documentation and articles about ZooKeeper, it acts the best as a coordination service for distributed applications.

In our concept, ZooKeeper is planned to be used as a centralized configuration data storage. However, despite the fact that ZooKeeper has data model that looks like a UNIX OS file system ZNode can be interpreted as a "directory" that can have data associated with it , there are several constraints, which limits using ZooKeeper as an ordinary file system:.

You know, that creating complex all-purpose system that can do "almost everything" often leads to worse outcomes compared to the set of specialized tools, and even if you're sure in the final result the development process become very resource consuming and results in a poor ROI. Considering all the pros and cons, we have to strictly define the boundaries of our system:.

Let's build an application that will show basic examples of communicating with ZooKeeper ensemble to coordinate configuration information. System will consist of one running instance of Apache Zookeeper and simple HTTP service, that use remote configuration to initialize itself on startup and serve several dummy requests.

Structure of the system as well as its functionality could be easily extended according to your needs due to great scalability of the ZooKeeper-based solutions.

The structure of the ZooKeeper storage of system configuration data is equivalent to file system structure of any UNIX-like operation system.

In this case, we have several root paths for different kind of initial and runtime configuration data. We use capabilities of Apache Curator Framework for this purposes. It is pretty intelligent high-level API that adds many features that are built on ZooKeeper and handles the complexity of managing connections to the ZooKeeper cluster and retrying operations.

Please, notice that we still need some minimal local configuration to be able to establish connection to a ZooKeeper ensemble and set target environment. There are two options:. Settings from the ZooKeeper could be obtained at any time after client is initialized and connection to the ensemble is established. Environment is set in the namespace parameter of the client on initialization step, so you shouldn't specify it explicitly in the path to the target znode.

You have to specify relative path to the znode with target configuration entry. Default data representation of ZooKeeper client is a byte array. However, it is not the most convenient data format for configuration data to work within an application. Below is implicits to convert data from ZooKeeper to the most popular data types. In addition to this, converters could wrap data in Option. So you'll get None instead of exception in case if specified configuration entry does not exist or can not be converted to the target data type.

See scaladocs for details.



0コメント

  • 1000 / 1000