Friday, September 12, 2003

KB Research - Polyphonic C#

Polyphonic C# extends the C# programming language with new asynchronous concurrency abstractions, based on the join calculus. The language presents a simple and powerful model of concurrency which is applicable both to multithreaded applications running on a single machine and to the orchestration of asynchronous, event-based applications communicating over a wide area network.

Friday, September 05, 2003

KB .NETDevelopment - MEIF

The Microsoft Enterprise Instrumentation framework provides unified management, eventing, and diagnostic tracing services for enterprise applications in a production environment. Enterprise Instrumentation enables developers to consistently instrument enterprise applications, which are increasingly decoupled and distributed, and enables support staff to use a "white-box" approach to monitoring and diagnosing application health, faults, or other internal conditions.

Every released software application, regardless of size or complexity, imposes a common requirement on the business that the application serves: it must be managed to ensure that the application provides its services correctly and reliably during its operational lifetime. Instrumentation plays a key role in application manageability, allowing a particular software or hardware element to publish — or be queried for — relevant information. Examples of common instrumentation mechanisms include performance counters, event logs, Windows 2000 Event Trace, and Windows Management Instrumentation (WMI). These mechanisms are often complementary, as in the example of querying an event log through a WMI provider.

Achieving consistent instrumentation across all enterprise applications is a difficult task. Today, enterprises that build applications on Microsoft platforms must instrument their applications by directly writing to event logs, performance counters, third-party instrumentation APIs, or their own common instrumentation wrappers and libraries. Implementing and supporting the various forms of instrumentation brings additional challenges, given the distributed nature of today's n-tier, Web-enabled applications.

Operations staff must be able to trace specific paths through the system, not just monitor individual events and event sources. Logically related events from physically different servers need to be correlated. The instrumentation itself must be suitable for a production application; instrumentation overhead must minimally effect application throughput. Finally, organizations must be able to leverage as many existing management tools and infrastructure as possible, to monitor and troubleshoot the enterprise applications they support.

Key features of this framework are:

* Unified programming model, suitable for both enterprise developers and system developers.
* Structured WMI event schema, which acts as a supportability contract between Development, Test, and Operations teams.
* Scriptable configuration layer, allowing operations teams to configure how events are raised or logged from an application.
* Support for raising or logging events through WMI, Windows Event Log, and Windows Event Tracing, a high-speed kernel-
mode tracing system.
* Correlation of events to business processes or operations with Request Tracing, which allows operations staff to
troubleshoot requests across a distributed application.

Monday, September 01, 2003

KB Definition - Adaptable Process Model (APM)

APM is to provide you with a software process that you can customize and adapt to local needs. The APM includes a detailed process flow implemented as a hypertext document, descriptions of many key software engineering tasks, document templates, and checklists. Acquiring the APM can significantly reduce the time required to develop your company's software process description.

Because the complete APM is provided in hypertext format within the RSP&A Web site, you and your colleagues review the complete generic process. If you think it has merit for your organization, the complete hypertext version can be acquired for an extremely reasonable price. You can then build a local website for Internet or intranet application, while at the same time making the adaptations necessary to mold the APM to local requirements. In most cases, large portions of the APM can be used as is, but in every case, you have the capability to modify terminology and process content to meet your needs and better reflect your local information technologies or engineering environment.

Thursday, August 28, 2003

KB Definition - Blog

A frequent, chronological publication of personal thoughts and Web links.

Information

A blog is often a mixture of what is happening in a person's life and what is happening on the Web, a kind of hybrid diary/guide site, although there are as many unique types of blogs as there are people.

People maintained blogs long before the term was coined, but the trend gained momentum with the introduction of automated published systems, most notably Blogger at blogger.com. Thousands of people use services such as Blogger to simplify and accelerate the publishing process.

Blogs are alternatively called web logs or weblogs. However, "blog" seems less likely to cause confusion, as "web log" can also mean a server's log files.

Wednesday, August 27, 2003

KB Definition - Agile Modelling For XP

Agile Modeling (AM) is a practices-based software process whose scope is to describe how to model and document in an effective and agile manner. The practices of AM should be used, ideally in whole, to enhance other, more complete software process such as eXtreme Programming (XP) (Beck, 2000), the Microsoft Solutions Framework (MSF) (Microsoft Corporation, 2001), the Rational Unified Process (RUP) (Rational Corporation, 2001), and the Enterprise Unified Process (EUP) (Ambler & Constantine, 2002) to name a few. These processes cover a wider scope than AM, in the first three cases the development process and in the fourth the full software process including both development and production. Although these processes all include modeling and documentation activities, in one form or the other, there is definitely room for improvement. In the case of XP and MSF the modeling processes should be better defined, and in the case of both the RUP and the EUP the modeling processes could definitely stand to be made more agile.

KB Definition - Extreme Programming (XP)

Extreme Programming (XP) is actually a deliberate and disciplined approach to software development. About six years old, it has already been proven at cost conscious companies like Bayerische Landesbank, Credit Swiss Life, DaimlerChrysler, First Union National Bank, Ford Motor Company and UBS.

This methodology also emphasizes team work. Managers, customers, and developers are all part of a team dedicated to delivering quality software. XP implements a simple, yet effective way to enable groupware style development.
XP is different. It is a lot like a jig saw puzzle. There are many small pieces. Individually the pieces make no sense, but when combined together a complete picture can be seen. This is a significant departure from traditional software development methods and ushers in a change in the way we program.

Tuesday, August 26, 2003

KB Definition - Enterprise Unified Process

An extension to the RUP lifecycle to include enterprise concerns.
The Unified Process is quickly becoming the de facto standard development process, also referred to as a software development methodology, within the object-oriented and component-based software communities. Is it sufficient? Ronin International, Inc.'s experience is that it isn't, in fact, by its very scope definition it is insufficient because we need more than a development process, we need a full-fledged software process. Enterprise Unified Process (EUP), an extension to the Rational Unified Process (RUP), is sometimes referred to as Enterprise-RUP or simply E-RUP. People familiar with the RUP can see that the extensions includes two new phases, Production and Retirement, and two new disciplines, Enterprise Management (formerly called Infrastructure Management) and Operations & Support.

KB Definition - SALT : Speech Application Language Tags

Speech Application Language Tags (SALT) are a lightweight set of extensions to existing markup languages, in particular HTML and XHTML that enable multimodal and telephony access to information, applications and Web services from PCs, telephones, tablet PCs and wireless personal digital assistants (PDAs).


KB Definition - Refactoring

Refactoring is "To evolve the composition of a subject without changing its tangible value.” - Amith Ellur

Code refactoring as stated by Martin Fowler is, “a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior.” [Fowler, Refactoring: Improving the Design of Existing Code (Addison-Wesley, 1999)].