Критично для бизнеса
Семьдесят процентов клиент-серверных приложений, созданных вами сегодня, за два года устареют. Почему так мрачно? Да потому, что мы строим системы не стратегически, а тактически. Руководство давит со сроками, а в повышении квалификации и изучении новых приемов проектирования не помогает. Мы делаем свои приложения в бешеном темпе, и они тоже получаются малость не в своем уме.
Мы пробовали архитектуру с упором на клиентскую часть. Ею легко управлять, ее легко настраивать и реализовывать, с ней комфортно работать. Но ее трудно поддерживать, сложно повышать производительность сервера, и она не способствует повторному использованию кодов, приводит к слишком большому времени реакции сервера, имеет единственную точку отказов, а масштабировать ее можно только путем существенной модификации клиентской части или установкой более быстрой сети.
Тогда мы попробовали архитектуру с упором на серверную часть. Ею легко управлять, ее легко настраивать, реализовывать и поддерживать. Но возникают трудности при попытке повысить производительность клиентской части и интегрировать ее с другими приложениями для настольных ПК.
Этот подход приводит к большему времени реакции при нарушении ограничений, имеет единственную точку отказов, масштабирование достигается только путем существенной модификации серверной части.
Надо было что-то сделать. Мы начали разделять приложения, но не думаю, что этот путь правилен. Я не думаю, что хорошей идеей окажется трехуровневое разделение - оно привязывает к определенной модели. Подумайте вместо этого о многоуровневости.
Вот семь “заповедей” для успешного разделения приложений.
Не поддавайтесь обаянию клиент-серверных средств первого поколения. Для рабочей группы или отдела они хороши, но недостаточно мощны для обеспечения системы масштаба предприятия.
Знайте скорости своих транзакций. Не скорость выполнения оператора COMMIT в вашей СУБД, а скорость реальных бизнес-транзакций.
Не идите по дороге приемлемых упрощений. Вначале такое “сглаживание углов” облегчает жизнь, но в конце концов получается крайне неудобное и трудно поддерживаемое приложение.
Умеренность во всем - хорошая вещь. Следуйте духу масштабирования, а не ортодоксии разделения приложений.
Платите то, что должны. Пока все идет хорошо, трудно увидеть необходимость приобретения средств моделирования, управления системами и процессами. Но, когда к вам обернется мерзкая морда неполадок, эти жертвы окажутся принесенными не зря.
Не вносите в систему хаоса. Ни слишком много компонентов, ни слишком много средств не дадут улучшения - успешные технологии и структуры всегда элегантны и просты.
Неисповедимы пути работы распределенных систем. Приложите все усилия, чтобы ваша система была настолько предсказуема, документирована и управляема, насколько это будет возможным.
А я с удовольствием пошлю вам наш бесплатный набор для начинающего в области распределения приложений. Сообщите только мне по Е-mail адрес вашей обычной почты.
Кристина Комафорд
Я не думаю, что хорошей идеей окажется трехуровневое разделение - оно привязывает к определенной модели. Подумайте вместо этого о многоуровневости