среда, 25 июля 2012 г.

Data Modelling


Entities is a form of concept describes a collection of instances of interest. An entity typically has attributes.

Relationship types typically have cardinality constraints, dictating the number of instances of the respective entity sets that are related by a relationship of that type. UML also allows arrowheads as annotations on associations. These arrowheads play no role in the relationships themselves, but are UML notation for specifying navigability.

XML is an open family of languages in the sense that developers define their own application-specific dialects. DTDs do not support namespaces, which remains a serious deficiency.

суббота, 23 июня 2012 г.

BPEL

Описание применения языка BPEL

ESA - enterprise services architecture

from the book "Enterprise Software Architecture And Design"

REMOTE PROCEDURE CALL


Using RPC an application is able to use a resource on a remote server as on a local. The application does not need to distinguish between the use of local and remote resources. In reality matters are more complicated.

Problems:
1)      Weak specification
2)      Tight coupling
3)      Error handling (*)
4)      Routing on the network layer

(*) It’s not a problem in LANs, where network failures are relatively infrequent.

MESSAGE-ORIENTED MIDDLEWARE

RPC has been used successfully in LAN, in WAN message-oriented has seen broader acceptance.

Problems
1)     High cost, the use of such tools for enterprise application integration (EAI) is normally for large enterprises.
2)      А vendor-specific solutions. The need to define application logic in a vendor-specific language such as a work flow language is also regarded as a barrier to entry of the use of such systems. Work in business process modeling (BPM) has been addressing some of these issues, defining industry standards such as WS-BPEL and Business Process Modeling Notation (BPMN).


WEB SERVICES AND SERVICE-ORIENTED ARCHITECTURE (SOA) 

In its original manifestation, Web services can be viewed as an RPC stack defined with the HTTP Web protocol as its transfer protocol.

Problems
1)     WS-Addressing for end-to-end message routing, WS-ReliableMessaging and WS-Transaction for reliability, WS-Security and WS-Policy for security, as well as WS-BPEL for business process automation. The complexity introduced by these standards, and to some  extent already present in the SOAP and WSDL languages themselves, has led to a backlash in much of the software community.

 Reaction against the complexity of the WS-* stack has led to widespread adoption of so-called “RESTful” Web services. Many APIs originally developed as SOAP-based Web services, for example providing programmatic access to Yahoo and Google services, have been replaced by RESTful interfaces.


2)     Apparently independent services may access shared resources and inadequate provision for specifying and handling this may give rise to phenomena such as deadlock
3)     Quality of service is another important facet of service interfaces


The advantages of SOA
1)     Merging software services that were developed in isolation for separate applications and re-using it
2)     Invoking services through their APIs allows one implementation to be replaced by another, allowing systems to be upgraded on a component-by-component basis
3)     The modular structure of SOA supports “agile” application development

To cancel disadvantages of SOA via Web services use the enterprise service bus


CLOUD COMPUTING

What is the motivation for cloud computing?

1)     To enable the outsourcing of IT operations such as email and document editing to third parties
2)     Economies of scale in building computer and networking environments
3)     Flexibility in choosing the location of physical resources
4)     Being able to dynamically increase the provisioning of computing resources

Successful example: batch processing of large data sets based on frameworks for automatic parallelization of the processing over a cluster of virtual server instances



среда, 20 июня 2012 г.

Several classes of failures

A. Fail-stop and crash errors
B. Routing errors
C.  Byzantine failures - machine still worked but produced invalid results
How to solve?
Global consensus about monitoring point
Atomic commitment
Validate messages in all levels

Communications in enterprise networks

All components are typically distributed over networks. Some of the distribution are physical, some virtual. The Internet are designed for packet loss. In the local networks packets lost with fewer probability. Typically the API is message-passing. There are sync and async message passing. Problems: servers may have software errors, latency is not zero, bandwidth is not infinite, network is not secure, topology is changing, not only one administrator, transport cost is not zero, the network is heterogeneous.

вторник, 19 июня 2012 г.

понедельник, 18 июня 2012 г.

воскресенье, 17 июня 2012 г.

Java Script Patterns

http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript


Creational Design Patterns

The three common ways to create new objects in JavaScript are as follows:
var newObject = {};
var newObject = Object.create( null );
var newObject = new Object();

Constructors With Prototypes

function Car( model, year, miles ) {

  this.model = model;
  this.year = year;
  this.miles = miles;

}


// Note here that we are using Object.prototype.newMethod rather than 
// Object.prototype so as to avoid redefining the prototype object
Car.prototype.toString = function () {
  return this.model + " has done " + this.miles + " miles";
};

// Usage:

var civic = new Car( "Honda Civic", 2009, 20000 );
var mondeo = new Car( "Ford Mondeo", 2010, 5000 );

console.log( civic.toString() );
console.log( mondeo.toString() );


Structural Design Patterns


Behavioral Design Patterns



воскресенье, 10 июня 2012 г.

Новости 4-10 06 2012


  1. VB поддерживался 24 года, .NET 1.0 всего семь лет тут
  2. Высоконагруженный асинхронный WCF тут
  3. Entity Framework working in fully disconnected N-tier web app (Entity Framework was supposed to solve the problem of Linq to SQL, which requires endless hacks to make it work in n-tier world)
  4.  DJ media pleer 
  5. A css-only image accordion with "click" events.
  6. Таблицы с прокрутками, сортировкой и фильтрами в учетных системах тут
  7. Дизайнерские QR-коды

воскресенье, 3 июня 2012 г.

Мобильный сайт или мобильное приложение?

В книге Dino Esposito "Architecting Mobile Solutions for the Enterprise" автор утверждает, что нельзя сравнивать между собой мобильные сайты и мобильные приложения. И я с ним соглашусь, да и сложно не согласиться, если плюсы первого есть минусы второго.

Плюсы мобильных приложений:


  • Хорошо интегрированы с устройством (акселерометр, датчик положения, тачскрин и т.п.)
  • Не сильно зависят от сетевых задержек, могут работать в перегруженных трафиком сетях, и даже в отсоединенном от сети режиме
  • Предлагают пользователям единообразный интерфейс
  • Не нужно вводить адрес или создавать закладку, чтобы запускать

Плюсы мобильных сайтов:

  • Разрабатываются один раз. На всех платформах и на всех устройствах выглядят одинаково
  • Простейшая модель распространения и установки: достаточно набрать адрес или выбрать закладку
  • Незаметно для пользователя дополняют основной сайт
  • Методы SEO аналогичны тем, которые использованы на основномом сайте.
Для того, чтобы не промахнуться с выбором инструмента продаж, нужно хорошо знать свою аудиторию - потребителей товаров или услуг.

суббота, 2 июня 2012 г.

Про зарплату

Нашел на форумах sql.ru

Вы требуете увеличение зарплаты, но не получите, потому что... 

—Уровень знаний поднялся на порядок
—Т.е. наконец начал выполнять свою работу хорошо, и тебе за это увеличивать зарплату?

—Увеличился стаж
—Т.е. 40-летний программист уже получает свои миллионы?

—Не было ни одного замечания
—Это не ваша заслуга, а наша недоработка

Вы можете получить увеличение зарплаты, если..

—Покажете предложение работы с более выгодным предложением
—У вас расширится зона ответственности
—Произойдет индексация зарплат




суббота, 26 мая 2012 г.

Недостатки объектно-ориентированного программирования

На Хабре хорошая статья о недостатках ООП: Жизнь без объектов. Если резюмировать, то за надцать лет развития объектно-ориентированного программирования не были решены родовые проблемы казавшейся универсальной технологии, а именно:
  • Бизнес-компоненты использовать повторно можно только в той же самой доменной области, т.е. использовать их может только разработчик, пока работает на своих процессах
  • Паттерны не только не упрощают код, но даже усложняют его сверх меры и делают нечитаемым, если использовать неразумно
  • Универсальные библиотеки классов избыточны и сложны в освоении
  • Любое изменение в базовом классе может непредсказуемо повлиять на поведение дочерних классов, и даже сделать их неработоспособными. Чем глубже иерархия наследования, тем более хрупкий код получается
  • Инкапсуляция почти всегда нарушается, так как нам нужно получать доступ ко всем данным объекта
  • Непрерывное изменение состояние объекта влечет проблемы отладки
Автор предлагает перейти на функциональные языки программирования.