Nova postagem

Rechercher

Artigo
· Fev. 21 6min de leitura

Retour aux fondamentaux : pourquoi InterSystems ?

InterSystems est à l'avant-garde de la technologie des bases de données depuis sa création, en étant à l'origine d'innovations qui surpassent régulièrement ses concurrents comme Oracle, IBM et Microsoft. En se concentrant sur une conception de noyau efficace et en adoptant une approche sans compromis des performances des données, InterSystems s'est taillé une place de choix dans les applications critiques, garantissant fiabilité, rapidité et évolutivité.


Une histoire d'excellence technique

Au cours de ses premières années, InterSystems s'est distingué par son architecture de base de données révolutionnaire, qui a remédié aux inefficacités des systèmes de bases de données relationnelles existants. Alors que des concurrents comme Oracle s'appuyaient sur des conceptions relationnelles rigides, InterSystems a introduit une base de données multi-modèle alimentée par son noyau propriétaire. Cette innovation a permis de traiter les données sous forme de tables, d'objets, de tableaux multidimensionnels ou de paires clé-valeur, le tout au sein d'un moteur de base de données unifié. Le résultat a été une amélioration significative des performances des charges de travail transactionnelles par rapport aux bases de données conventionnelles. Ces capacités ont jeté les bases de la domination d'InterSystems dans des secteurs tels que la santé et la finance, où les systèmes doivent gérer de vastes quantités de données sans compromettre la vitesse ou la précision.


Rester compétitif face aux géants de l'industrie

Malgré la concurrence de sociétés cotées en bourse disposant de vastes ressources, telles qu'AWS et Microsoft, InterSystems reste un fournisseur de confiance pour les applications critiques. Cette confiance durable découle de sa supériorité technique et d'un engagement ciblé envers ses clients.

  1. Un noyau conçu pour la fiabilité et la faible latence Au cœur d'InterSystems IRIS se trouve son noyau, un moteur hautes performances conçu pour maximiser la vitesse, la fiabilité et l'évolutivité. Contrairement aux concurrents qui s'appuient sur des couches externes ou des intergiciels pour la mise à l'échelle des performances, le noyau IRIS intègre des fonctionnalités clés telles que l'indexation des données, la journalisation et la mise en cache de manière native, garantissant des performances à faible latence sous des charges de travail extrêmes.
    • Journalisation et récupération après incident : les techniques de journalisation avancées du noyau IRIS minimisent les temps de récupération, permettant aux systèmes de revenir à un état cohérent en quelques secondes, même dans des scénarios catastrophiques. Les solutions concurrentes souffrent souvent de temps de récupération plus lents, ce qui peut entraîner des temps d'arrêt coûteux.
    • Évolutivité avec ECP et sharding : InterSystems IRIS surpasse ses concurrents en permettant une évolutivité horizontale avec Enterprise Cache Protocol (ECP) et le sharding des données. Cela permet à des organisations comme Epic Systems, un géant des logiciels de santé, de gérer des millions de transactions de santé quotidiennes de manière fiable.
  2. Des secteurs comme la santé et la finance, où l’échec n’est pas une option, continuent de s’appuyer sur InterSystems. Par exemple, le ministère américain des Anciens Combattants et le Crédit Suisse font confiance à IRIS pour assurer un traitement des données cohérent et performant. Cette confiance est renforcée par la capacité d’InterSystems à traiter des millions de transactions par seconde avec une latence déterministe, surpassant de loin Aurora d’AWS dans les cas d’utilisation à forte intensité de transactions.
  3. Innovation centrée sur le client Contrairement à ses concurrents cotés en bourse, InterSystems réinvestit massivement dans la recherche et le développement au lieu de se concentrer sur le rendement des actionnaires. Cette orientation a donné lieu à des innovations telles qu'IntegratedML, qui intègre l'apprentissage automatique directement dans la base de données, et Multi-Model Data Access, qui élimine le besoin de pipelines ETL coûteux.

Positionné pour l'ère de l'IA

Alors que l'intelligence artificielle transforme les industries, la demande en systèmes de données hautes performances et évolutifs atteint des niveaux sans précédent. InterSystems IRIS, avec son noyau optimisé et son évolutivité inhérente, est particulièrement bien placé pour répondre à ces exigences.

  1. Vitesse et faible latence Dans les applications d'IA, où les millisecondes comptent, InterSystems IRIS excelle en exploitant le traitement en mémoire et l'indexation intelligente pour minimiser la latence. Les tests révèlent qu'InterSystems IRIS était entre 2,7 et 3,1 fois plus efficace qu'AWS Aurora MySQL et que l'avantage en termes d'efficacité s'est accru à mesure que le nombre de nœuds du cluster augmentait..
  2. Évolutivité sans effort pour les charges de travail à forte intensité de calcul InterSystems IRIS prend en charge la mise à l'échelle verticale pour les systèmes à cœur élevé et la mise à l'échelle horizontale via le sharding et l'ECP. Cette architecture a permis à Mass General Brigham de faire évoluer sa plateforme de données de santé, permettant une intégration transparente de plus de 100 millions de dossiers de patients dans son réseau d'hôpitaux et de cliniques. En exploitant InterSystems IRIS, Mass General Brigham a obtenu des performances de requête rapides et des informations en temps réel, essentielles pour l'aide à la décision clinique et l'analyse de la santé de la population.
  3. Données colocalisées pour l'IA et l'analyse En intégrant les charges de travail opérationnelles et analytiques au sein du même environnement, InterSystems élimine le besoin de processus ETL qui introduisent la latence et la complexité. Cette capacité permet aux modèles d'IA d'accéder instantanément à des ensembles de données en direct, accélérant ainsi les flux de travail dans des secteurs tels que la chaîne d'approvisionnement et la fabrication.
  4. Intégration compatible avec l'IA InterSystems IRIS s'intègre parfaitement à Python, IntegratedML et aux frameworks d'IA populaires tels que TensorFlow et PyTorch. Ces intégrations permettent aux organisations de déployer des modèles d'IA directement dans l'environnement de base de données, réduisant ainsi les frais généraux et la latence par rapport aux approches traditionnelles qui nécessitent le déplacement des données vers des systèmes externes.

Des chiffres concrets qui comptent

  • Critères de performance : les résultats de tests démontrent un avantage considérable en termes de performances pour InterSystems IRIS par rapport à AWS Aurora MySQL, MariaDB, Microsoft SQL Server, Oracle et PostgreSQL. Le taux d'insertion pour InterSystems IRIS était entre 1,7 et 9 fois plus rapide que pour les autres systèmes. Le taux de requête de données pour InterSystems IRIS était entre 1,1 et 600 fois plus rapide que pour les autres systèmes.
  • Évolutivité : le noyau IRIS prend en charge l'ingestion de millions de transactions par seconde, ce qui le rend idéal pour les entreprises mondiales.
  • Impact dans le monde réel : plus d'un milliard de dossiers médicaux dans le monde sont gérés à l'aide de la technologie InterSystems, démontrant une évolutivité et une fiabilité inégalées.

Conclusion

La conception unique du noyau d’InterSystems et son engagement de plusieurs décennies en faveur de l’innovation ont consolidé sa place de leader dans le domaine des systèmes critiques. Qu’il s’agisse de gérer les transactions de santé pour Epic, d’alimenter les systèmes financiers pour Harris Associates ou de permettre des applications d’IA en temps réel, InterSystems IRIS offre en permanence une vitesse, une fiabilité et une évolutivité inégalées. Alors que les industries adoptent les exigences informatiques de l’IA, InterSystems reste le partenaire de confiance des organisations qui ne peuvent se permettre de faire des compromis.

Discussão (0)1
Entre ou crie uma conta para continuar
Pergunta
· Fev. 21

How To Test REST API Methods without referring to a Web Server?

Hi folks!

I'm building a very simple REST API.

But before testing it via a Web Server what I want to make sure that REST API methods work in principle.

Is it an easy way to "fake" the web-server request and get a result e.g. of the method with signature like that?

ClassMethod GetAllRecords(pRequest As %CSP.Request, pResponse As %CSP.Response) As %Status

e.g. calling it in Terminal?

6 Comments
Discussão (6)5
Entre ou crie uma conta para continuar
Artigo
· Fev. 21 1min de leitura

QuinielaML - Predicción de la 45ª jornada de la Quiniela

Pues ya tenemos nueva jornada de Liga y de Quiniela, 25ª de Primera División y 28ª de Segunda. Veamos qué partidos entrarán esta jornada:

Aquí tenemos la predicción para Primera División:

Y aquí para Segunda División:

Esto nos da la siguiente Quiniela:

¡Mucha suerte esta jornada!

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Fev. 21 4min de leitura

Modern and Easy-to-Use VSCode Plugin for InterSystems ObjectScript: Class Diagram Visualization with PlantUML

Motivation

I didn't know about ObjectScript until I started my new job. Objectscript isn't actually a young programming language. Compared to C++, Java and Python, the community isn't as active, but we're keen to make this place more vibrant, aren't we?

 

I've noticed that some of my colleagues are finding it tricky to get their heads around the class relationships in these huge projects. There aren't any easy-to-use modern class diagram tool for ObjectScript.

Related Work

I have tried relavant works:

- InterSystems class view:
1. https://github.com/intersystems-community/ClassExplorer
This is great work, and the class diagram looks really good and clean. But there's still an issue with the docker build: "#0 0.512 exec ./irissession.sh: no such file or directory". I'm guessing it's a support feature for the studio rather than VSCode. It seems to need to import your project manually. It seems like it needs some configuration to use this product.

2. https://github.com/gjsjohnmurray/vscode-objectscript-class-view
This is another great work which gives me inspiration. The class structure is clear and it supports not only class in project also class from library. But it looks like a enhanced version of vscode outline. 

- Other language VSCode class diagramm view plugins

1. https://github.com/OH318/J-Diagram
The readme shows the running results with draw.io really well. But when I tested it locally, I couldn't use it. So I won't use it as a reference.

2. https://github.com/pierre3/PlantUmlClassDiagramGenerator
It's relative good and it requires some configuration. I took the idea of generating uml first, then use PlantUML to generate class diagram.

- Best Implementation of class diagram:
1. Jetbrains products, like Intellij Idea and Pycharm, are amazing for class diagrams. Just drag and drop classes, click a hyperlink, and you're all set to generate a powerful class diagram.

2. VSCode typescript class diagram plugin
https://marketplace.visualstudio.com/items?itemName=AlexShen.classdiagra...
drag, drop, hyperlink click, support of folder class diagram generation.

I took the design idea from them. Unfortunately, they are closed source, so I'll have to design the project on my own.

InterSystems ObjectScript Class Diagram View

is a Visual Studio Code extension that generates UML class diagrams from InterSystems ObjectScript (.cls) files. It provides interactive visualization and navigation features, built on PlantUML for reliable diagram rendering.

Key Features

  • Generate UML class diagrams from .cls files
  • Support for both single class and folder-level diagram generation
  • Right-click context menu integration in both editor and explorer
  • Visualize class relationships, properties, and methods
  • Built on PlantUML for reliable diagram rendering
  • Generate diagrams using PlantUML Web Server (no Java required)
  • Interactive Class Diagram Browsing
    • Click on class names, properties, or methods to quickly jump to the corresponding code
    • SVG diagrams embedded in HTML for smooth interaction
    • Visual navigation of class relationships

I tested the plugin on another great objectscript project apiPub

I have offered two modes, generate class diagram based on parse local file system of the project or with iris integration.

Generating Class Diagrams


This mode parse class structure from local project, the inheritance structure of library class wont be generated and library class cannot be clicked to enter.

For a single class:

For a folder:

For the whole project. The class diagram is in SVG format, and it's always sharp and clear.

Generate Class Diagram with IRIS Integration

This feature is dependent on InterSystems plugins and it will generate all the class properties, parameters and methods from the chosen class. It is important to note that the feature generates the entire inheritance hierarchy, even for classes that are not present in the local project.

Configure your IRIS connection in VS Code settings:

  • Go to Settings > Extensions > InterSystems ObjectScript Class Diagram
  • Enter your IRIS server host, port, namespace, username, and password

Configure IRIS Settings

Open a .cls file in the editor

Right-click and select "Generate InterSystems Class Diagram"

The extension will connect to your IRIS server and generate a diagram using class information from the server

Click on class names, properties, or methods in the diagram to:

Open the class in IRIS Documatic

View property definitions in IRIS

Navigate to method implementations in IRIS

Generate InterSystems ObjectScript Class Diagram

Requirements

OS Required Optional (for local PlantUML generation)
Windows - VSCode 1.96.0+
- ObjectScript Class Files(.cls)
- Java 8+
Linux - VSCode 1.96.0+
- ObjectScript Class Files(.cls)
- Java 8+
- Graphviz

Usage

  • Open a .cls file and generate a class diagram using:
    • Ctrl+Alt+U shortcut
    • Right-click on a file or folder and select "Generate Class Diagram"
  • Click on elements in the diagram to jump to class definitions, properties, and methods

Known Issues

  • Subclass Generation: Missing functionality to generate subclass diagrams for the current class
  • Large Project Performance:
    • Generating diagrams for large folders via right-click may experience significant delays
    • Generated webview/SVG for large projects lacks smooth zoom functionality and proper scaling
  • IRIS Pwd Plaintext: Passwords shouldn't be shown as plain text. This will be fixed in the next version. I don't store the connection information and the code is open source, so you can check it to see if it's safe.

Please report any issues on the GitHub repository.

Contributing & License

  • Open for contributions via GitHub
  • Licensed under MIT

You can find this plugin on the marketplace, feel free to create issues at issue and contribute with PR.

7 Comments
Discussão (7)3
Entre ou crie uma conta para continuar
InterSystems Oficial
· Fev. 21

警告:SQLクエリが間違った結果を返す

2025 年 2 月 15 日 – 警告:SQLクエリが間違った結果を返す

インターシステムズは、SQL クエリが不正な結果を返す原因となる 2 つの問題を修正しました。さらに、日付/時刻データ型の処理における不整合を修正しました。この日付/時刻データ型の処理の修正により以前の不整合な動作に依存していた既存のアプリケーションでは、異なる予期しない(正しい)結果が返される可能性があります。

DP-436825: ラテラル結合を使用したSQLクエリが間違った結果を返すことがある

最初の問題 (DP-436825) は、プロセスあたりの最大メモリ (.cpf ファイルの「bbsiz」パラメータ) を既定値以外で構成されたインスタンスで、暗黙的または明示的にラテラル結を使用する SQL クエリにのみ影響します。InterSystems IRIS を新規にインストールすると、bbsiz は既定値の -1 (つまり、メモリ制限はありません) に設定されます。一方、古いバージョンからのアップグレードでは、以前の設定が維持されます。この設定でクエリが実行時に並列処理を使用する場合 (システムが並列処理を使用する場合を含む)、クエリが正しくない結果を返すことがあります。この問題は、以下の製品のバージョン 2023.3、2024.1.0、2024.1.1、2024.1.2、2024.2、および 2024.3 に影響します:

  • InterSystems IRIS® data platform
  • InterSystems IRIS® for Health
  • HealthShare® Health Connect

この問題は、HealthShare® Unified Care Record および関連製品にも影響します:バージョン 2024.2 の HealthShare Unified Care Record および関連製品では、製品コードでラテラル結合を使用する SQL クエリは使用されません。しかしプロセスあたりの最大メモリが既定値以外かつ HealthShare 2024.2 にアップグレードした場合は、ユーザがラテラル結合を使用する独自の SQL クエリを記述している際には影響を受ける可能性があります。 この問題を回避するには、以下の3つのいずれかを実施します :

  • bbsizパラメータを -1 に設定
  • ラテラル結合を含むクエリで %NOPARALLEL キーワードの使用
  • インスタンスのアダプティブ・モードを一時的に無効して、クエリの自動並列処理を回避

これらの回避方法によって、クエリが正しい結果を返すことを確認しています。この問題の修正は DP-436825 として修正され、2024.1.3、2025.1.0 以降の製品リリースに含まれます。 また、Adhoc形式での配布も可能です。

DP-436998: %ID による逆ソートの SQL クエリが無限ループになる

2つ目の問題 (DP-436998) は、行 ID の降順で並べ替えを行うSQLクエリで、行 ID が正の(ビットマップ互換の) 整数で、かつ、特定のデータ状況において発生します。これらの条件下では、クエリが無限ループに入り、中断されるまで同じ結果セットを返し続ける可能性があります。この問題は、以下の製品のバージョン2022.2、2022.3、2023.x、2024.xに影響します :

  • InterSystems IRIS® data platform
  • InterSystems IRIS® for Health
  • HealthShare® Health Connect

また、HealthShare® Unified Care Record および関連製品にも影響します: バージョン 2024.1 およびバージョン 2024.2 の HealthShare® Unified Care Record および関連製品では、製品コードで %ID による逆ソートを含む SQL クエリを使用していませんが、%ID による逆ソートを含む独自のSQL クエリを記述しているユーザは影響を受ける可能性があります。この問題の修正は DP-436998 として修正され、2023.1.6、2024.1.3、2025.1.0 以降の製品リリースに含まれます。 また、Adhoc形式での配布も可能です。

DP-436633: DATE 値とTIMESTAMP 値を比較するSQLクエリ

インターシステムズは、<= 演算子、> 演算子、および BETWEEN 演算子を使用した DATE 値と TIMESTAMP 値の比較方法の不一致を修正しました。この修正により、特定の日付と時刻の比較結果が変更されました。この修正は、以下の製品のバージョン 2023.3 以降で導入されました。

  • InterSystems IRIS® data platform
  • InterSystems IRIS® for Health
  • HealthShare® Health Connect

また、HealthShare® Unified Care Record および関連製品にも影響します: バージョン 2024.2 以降

更新された動作では、DATE 値は比較の前に TIMESTAMP 値に強制されます。これは、精度の低いデータ型を最も精度の高いデータ型に強制変換するというSQLの標準に準拠しています。

例えば、新しい動作 (これは標準に準拠しています) では MyTimestamp が正確に午前零時と一致する場合を除き、これらのフィールドの値が同じ日付に対応する場合、「MyTimeStamp > MyDate」 というクエリ述語は FALSE と評価されます。以前は、この動作は、MyTimeStamp フィールドが %PosixTime 形式で定義されている場合にのみ完全に標準に準拠し、%Timestamp または特定の特殊関数と変数の組み合わせを使用すると、特定のケースで標準に準拠しない結果を返していました。

予測可能な比較を確実に行うために、InterSystems では、明示的な CAST 関数を使用することをお勧めします。特に、結果の型が明らかでない可能性がある GETDATE()、NVL()、IFNULL() などの CASE 文や SQL 関数を使用する場合は、明示的な CAST 関数を使用することをお勧めします。

どの文が動作の変更の影響を受けるかを評価しやすくするため、クエリプランに警告を表示します。また、そのような文が実行時にエラーを発生するようにするオプションのシステム・フラグを導入しました。このフラグを有効にすると、アプリケーション・コードのリグレッション・テストの際に役立ち、実行時のユーザ・クエリに対する追加のセーフティ・ネットを提供することができます。この情報提供機能は DP-436633として識別され、2024.1.4 および2025.1.0 以降のすべての製品リリースに含まれる予定です。

この警告について質問がある場合は、カスタマーサポートセンターにご連絡下さい。

Discussão (0)1
Entre ou crie uma conta para continuar