GemStone
Супер Smalltalk
Обычно Smalltalk имеет некоторые ограничения, особенно в областях параллелизма и распределенной обработки. Эти ограничения не присущи дизайну языка. Скорее, это вопрос реализации. GemStone / S - фантастическая реализация, устраняющая эти недостатки. Я просто хотел обратить на это ваше внимание.
Что такое GemStone?
Решение ограничений традиционного Smalltalk:
- Пространство объекта ограничено одной виртуальной машиной.
- Пространство объекта ограничено одним хостом.
- Пространство объекта ограничено доступной оперативной памятью.
- Изменения объекта (с момента последнего сохранения образа) теряются при выходе из ВМ.
А именно,
- Пространство объектов, видимое тысячам виртуальных машин на тысячах машин.
- Пространство объекта ограничено диском, а не оперативной памятью.
- Изменения объекта, управляемые транзакциями ACID:
- Атомный
- Последовательный
- Изолированные
- Прочный
- Изменения объекта гарантированно сохраняются после фиксации.
Ключевые особенности GemStone
Масштабируемость
- Миллиарды объектов.
- Тысячи пользователей.
- Тысячи машин.
- Тысячи транзакций в секунду.
- Терабайты данных.
Параллелизм
- Несколько пользовательских сессий.
- Встроенная база данных транзакций:
- Совершить
- Прервать
- Продолжать
- Оптимистичный параллелизм (уменьшение количества конфликтов).
- Пессимистический параллелизм (блокировки чтения / записи на уровне объекта).
- Пространства имен (общие и частные).
Безопасность
- Безопасность на уровне объекта (права пользователя, группы, мира).
- Безопасность входа
- Традиционный идентификатор пользователя / пароль
- Единый вход (GSSAPI / Kerberos)
- LDAP
- PAM
- Сертификаты X509 (новое в 3.5)
- Привилегированные операции
- #Вывоз мусора
- #OtherPassword
- #SystemControl
Поддержка очень больших коллекций
- Коллекции из миллионов предметов.
- Оптимизирован поиск с использованием индексов b-дерева:
- Индексы равенства (a = b)
- Индексы идентичности (a == b)
- Сниженные индексы конфликтов
Интерфейсы для других Smalltalks
- VisualWorks®: GemBuilder для VisualWorks®.
- VA Smalltalk®: GemBuilder для VA Smalltalk®.
- Pharo: tODE, gt4Gemstone - скоро появится встроенная поддержка Pharo.
- Нефрит / Жадеит (Дельфин).
Интерфейсы для других языков
- C / C ++: GemBuilder для C.
- Java: GemBuilder для Java.
Интерфейсы к реляционным базам данных
- Oracle: GemConnect для Oracle.
- Sybase: GemConnect для Sybase (с открытым исходным кодом).
Лицензирование
Хотя GemStone / S является коммерческим продуктом, доступна Community Edition, которую каждый может бесплатно использовать для любых целей! Это чертовски круто.