InterSystems Caché bij de TU/e Marleen Vandervelden, Johan Kenens InterSystems Corporation.

Slides:



Advertisements
Similar presentations
Introduction to NHibernate By Andrew Smith. The Basics Object Relation Mapper Maps POCOs to database tables Based on Java Hibernate. V stable Generates.
Advertisements

The XML Server Dr. Zhiwang Fan
Directory Infrastructure Roadmap Overcoming Fragmented Identities - Roadmap to a Reliable Directory Infrastructure Thorsten Butschke & Dr. Martin Dehn.
Designing High Performance XDS Registries/Repositories IHE Interoperability Showcase – HIMSS 2006 Joe Gallant Product Manager.
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Pulan Yu School of Informatics Indiana University Bloomington Web service based Varuna.Net.
EIONET Training Beginners Zope Course Miruna Bădescu Finsiel Romania Copenhagen, 27 October 2003.
Heroix Longitude - multiplatform, automated application performance monitoring and management software.
Microsoft Confidential. An incubation effort to: Support client -> server communication in native code with a modern C++ API design Support writing Azure-based.
HP Data Protector in virtualno okolje
1. Complete and integrated BI and Performance Management offering Complete and integrated BI and Performance Management offering Widespread delivery of.
Agenda  Platforms  Software architectuur  Integratie en schaalbaarheid.
Windows IT Pro magazine Datacenter solution with lower infrastructure costs and OPEX savings from increased operational efficiencies. Datacenter.
Symon PerrimanSenior Technical Evangelist Kenon OwensSenior Product Marketing Manager.
Database System Concepts and Architecture
Lecture plan Information retrieval (from week 11)
Chapter 13 © 2000 Prentice Hall Chapter 13 Accessing the Database Server: ODBC, OLE DB, and ADO David M. Kroenke Database Processing © 2000 Prentice Hall.
MS Access.
1 Integration Made Easy Agile Integration: Connecting Salesforce With Your Enterprise.
Magic Technology Eyal Pfeifel - CTO. Client Windows, iOS, Android, BlackBerry, Windows Mobile ServerWindows, AIX, Solaris, Linux, IBM i Database Oracle,
General introduction to Web services and an implementation example
1 Database Driven Web Application Clients Application Servers including web servers Database Server Traditional client-server (2-tier architecture): client:
1 Enabling OpenVMS for Data & Application Integration 30, 2005 *John Apps – HP Strategic Planning and Architecture *Mark Peterson.
Advantage Data Dictionary. agenda Creating and Managing Data Dictionaries –Tables, Indexes, Fields, and Triggers –Defining Referential Integrity –Defining.
WTX Overview.
Middleware Fatemeh Hendijanifard 1 آزمايشگاه سيستم هاي هوشمند (
15 Chapter 15 Web Database Development Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
Multiple Tiers in Action
J2EE vs..NET Nigam Patel. Topics Background –Web Services, J2EE and.NET Similarities Differences Conclusion –Pros and Con (J2EE and.NET)
Chapter 14 Database Connectivity and Web Technologies
RIZWAN REHMAN, CCS, DU. Advantages of ORDBMSs  The main advantages of extending the relational data model come from reuse and sharing.  Reuse comes.
® IBM Software Group © IBM Corporation IBM Information Server Deliver – Federation Server.
WHAT IS PHP PHP is an HTML-embedded scripting language primarily used for dynamic Web applications.
1 Web Database Processing. Web Database Applications Static Report Publishing a report is prepared from a database application and exported to HTML DB.
Week 7 Lecture Web Database Development Samuel Conn, Asst. Professor
Networked Application Architecture Design. Application Building Blocks Application Software Data Infrastructure Software Local Area Network Server Desktop.
HP e3000 Migration Seminar Jean-Pierre (JP) Fortin ADT Worldwide Solution Architect.
PowerDesigner 与对象建模. 2 Why Using UML? Visually define and communicate the structure and behavior of an application Represent systems using Object-Oriented.
DB Libraries: An Alternative to DBMS By Matt Stegman November 22, 2005.
As quick as you think! 06 Paul Landucci Stéphane Coez.
Internet, intranet, and multimedia database processing l Database processing across local and wide area networks l Alternative architectures for distributing.
11/16/2012ISC329 Isabelle Bichindaritz1 Web Database Application Development.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Introduction to ColdFusion Yu Fu 2003 MEC Candidate.
Optimize Your Object Model Paul Dayan – Sales Engineer.
What’s new? Update on Netrics Matching Engine V4.0 and V4.1 Dave Chamberlain
Mainframe (Host) - Communications - User Interface - Business Logic - DBMS - Operating System - Storage (DB Files) Terminal (Display/Keyboard) Terminal.
Database Architectures Database System Architectures Considerations – Data storage: Where do the data and DBMS reside? – Processing: Where.
Federated Database Set Up Greg Magsamen ITK478 SIA.
Sudhir Hasbe Sr. Product Manager Microsoft Corporation SESSION CODE: SIA307 Renga Srinivas Sr. Program Manager Paul Larsen Product Unit Manager.
The XML The XML Company Gary Edmonds Software AG Pty Ltd TBI with XML.
INNOV-10 Progress® Event Engine™ Technical Overview Prashant Thumma Principal Software Engineer.
ViaSQL Technical Overview. Viaserv, Inc. 2 ViaSQL Support for S/390 n Originally a VSE product n OS/390 version released in 1999 n Identical features.
Retele de senzori Curs 2 - 1st edition UNIVERSITATEA „ TRANSILVANIA ” DIN BRAŞOV FACULTATEA DE INGINERIE ELECTRICĂ ŞI ŞTIINŢA CALCULATOARELOR.
1 Section 1 - Introduction to SQL u SQL is an abbreviation for Structured Query Language. u It is generally pronounced “Sequel” u SQL is a unified language.
Enterprise Wide Information Systems SAP R/3 Overview & Basis Technology Instructor: Richard W. Vawter.
The Holmes Platform and Applications
Databases (CS507) CHAPTER 2.
Databases and DBMSs Todd S. Bacastow January 2005.
Introducing SQL Server 2000 Reporting Services
Web-based Software Development - An introduction
Accessing the Database Server: ODBC, OLE DB, and ADO
Chapter 15 Database Connectivity and Web Technologies
Database Processing Applications
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
ADO.NEXT Advances in Data Access for 2008
Data, Databases, and DBMSs
CS3220 Web and Internet Programming SQL and MySQL
CS3220 Web and Internet Programming SQL and MySQL
Presentation transcript:

InterSystems Caché bij de TU/e Marleen Vandervelden, Johan Kenens InterSystems Corporation

Agenda  Inleiding  Historiek  Post-relational database Caché  Applicatie-ontwikkeling met Caché  Demo’s  Q&A

Historiek = M(UMPS)  M(UMPS) (mid ’60) (Masschusetts general hospital Multi Utility Programming System)  ANSI standaard (einde ’70)  Ontstaan van M implementaties (DSM, DTM)  Enkel nog gecommercialiseerd en geevolueerd door InterSystems  Programmeertaal  Data opslag in Globals (boomstructuur)

Post-relational database Caché Deel 1

1. De storage manager Multi-Dimensional Storage Manager = Geoptimaliseerd voor performantie = Opslag van complexe datastructuren

Complexe data-structuur: ^Globals Set ^Global = “fruit” fruit ^Global = ^Global gedraagt zich als een gewone type-less variable…

(2) peer Complexe data-structuur: ^Globals Set ^Global(1) = “appel” Set ^Global(2) = “peer” ^Global = (1) appel ^Global = (1) appel

(aantal) 45 set ^Global(2, “aantal”) = 45 Subscripts zijn eveneens untyped, en kunnen ook tekst (en dus data !) zijn … ^Global = (1) appel (2) peer

set ^Global(2, “naam”) = “Jefke” Subscripts zijn eveneens untyped, en kunnen ook tekst (en dus data !) zijn … ^Global = (aantal) 45 (1) appel (2) peer (naam) Jefke

vb. Set ^Global(2, “leverancier”) = “Fruit&co” ^Global = (leveranc.) Fruit&co … (1) appel (2) peer … Global subscripts zijn ook sparse…

Set ^Global(2, “leverancier”, “adres”, “straat”) = “perziklaan” Global subscripts zijn ook sparse… ( ) … (adr.) (abc) ( ) … (lev...) ( ) … ^Global = ( ) … (2) …(2) …(2) …(2) … (str.) = perziklaan

$Data(2, “leverancier) = 11 $Data(2, “leverancier”, “adres”) = 10 Global subscripts zijn ook sparse… ( ) … (adr.) (abc) ( ) … (lev...) ( ) … ^Global = ( ) … (2) …(2) …(2) …(2) … (str.) = perziklaan

^Globals: een n-dimensionele ruimte ^Global naam adres aantal leverancier 1 2 straat = “appel” = “peer” = 45 =“Fruit&co” = “Jefke” = Ø = “perziklaan”

2. Unified Data Architecture (UDA) Multi-Dimensional Storage Manager Caché Object interface  1 dictionary voor 2 access paths  Automatische projectie van definities in beide richtingen.  Geen supplementaire laag voor O/R mapping Caché SQL interface Dictionary

3. Platforms Multi-Dimensional Storage Manager Caché Object interface Caché SQL interface DictionaryDictionary Platforms   Database = 1 uitwisselbaar physisch bestand

Caché Platforms Platform32-Bit64-Bit  Alpha / OpenVMS   Alpha / Tru64 Unix   AViiON   HP    IBM P Series    Linux (Red Hat & SuSE)   Sun Solaris (SPARC)   Sun Solaris (Intel)   Windows 95, 98, ME, NT, 2000, XP   Apple MACOS X (aangekondigd) 

4. Tools and standaarden Multi-Dimensional Storage Manager Caché Objects Caché SQL interface DictionaryDictionary PlatformsPlatforms Tools en standaarden (zie RAD)

5. Integratie mogelijkheden InterSystems Caché COM Gateway SQL Gateway MQ Series Gateway Bestaande Windows applicaties (Word, Excel,...) Bestaande DB Informix Informix Sybase Sybase Oracle Oracle Elke ODBC Elke ODBC Bericht gebaseerde applicaties

Ensemble InterSystems Ensemble Business Service Business Process Business Operation Modeling (Studio) Adapter Message Queue (Caché) Message Transformation SAP – SIEBEL – FILE -....

Divided World of Database Transaction Processing Business Intelligence Optimized for Repetitive “simple” requests Infrequent complex queries UsersManyFew DatabaseDynamicStatic The Wall

Caché Bit Map Indices In a bit-map index, a property of a class is described by a string of bits In a bit-map index, a property of a class is described by a string of bits

Applicatie-ontwikkeling met Caché Deel 2

Object georienteerde omgeving PolymorphismEncapsulationInheritance

Objects / Relational Mismatch User Interface Logic TraditionalDatabase ObjectsObjectsTables Expensive Transformation

Objects in the Database User Interface Logic Caché Database ObjectsObjectsObjects Consistent Representation End to End

Database Scripting Caché Object Script BasicBasic Virtual Machine Data & Objects Any developer that knows VB knows Caché

UML Composition (One to One) /// This is the contained class in the composition /// and should be of type "serial" Class Address Extends %SerialObject [ ClassType = serial, ProcedureBlock ] { Property city As %String; Property number As %String; Property street As %String; Property zip As %String; } /// This is the container class in the composition Class Person Extends %Persistent [ ClassType = persistent, ProcedureBlock,] { Property firstName As %String; Property lastName As %String; /// The container contains an Address, the Address /// class in embedded in the Person class Property personAddress As Address; }

Serial embedded in %Persistent set adr = ##class(Address).%New()// Create an Address object set adr.street = “Kippenlaan“// Populate street set adr.number = “24“// Populate number set adr.city = “Vilvoorde“// Populate city set adr.zip = “1800“// Populate zip set per = ##class(Person).%New()// Create a Person object set per.firstName = “Jean-luc“// Populate firstName set per.lastName = “Dehaene” // Populate lastName set per.personAddress = adr// Populate personAddress do per.%Save()// Save the Person object

UML Composition (One to Many) /// This is the contained class in the composition /// and should be of type "serial" Class Address Extends %SerialObject [ ClassType = serial, ProcedureBlock ] { Property city As %String; Property number As %String; Property street As %String; Property zip As %String; } /// This is the container class in the composition Class Person Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Property firstName As %String; Property lastName As %String; /// The container contains Addresses, the Addresses /// are embedded in the Person class as a /// ListOfObjects class Property personAddresses As Address [ Collection = list ]; }

Collection embedded in %Persistent set list = ##class(%Library.ListOfObjects).%New()// Create a collection of objects set adr1 = ##class(Address).%New()// Create a first new Address object set adr2 = ##class(Address).%New()// Create a second new Address object set adr1.street = "Acaciastraat“// Populate first Address object set adr1.number = "20“// … set adr1.city = "Brussel“// … set adr1.zip = "1000“// … set adr2.street = "Jozef Plateaustraat“// Populate second Address object set adr2.number = "24“// … set adr2.city = "Gent“// … set adr2.zip = "9000“// … do list.Insert(adr1)// Insert first Address in the collection do list.Insert(adr2)// Insert first Address in the collection set per = ##class(Composition0toN.Person).%New()// Create a new Person object set per.firstName = "Freya“// Populate the Person object set per.lastName = "Vandenbossche“// … set per.personAddresses = list// Populate the collection do per.%Save() // Save the person object

UML Association (Relations = RI) (1) (One to Many = Restrict delete) Class Employee Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Relationship Department As Department [ Cardinality = one, Inverse = Employees ]; Index employeeDepartmentIndex On Department; Property firstName As %String; Property hireDate As %Library.Date; Property lastName As %String; } Class Department Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Relationship Employees As Employee [ Cardinality = many, Inverse = Department ]; Property deptCode As %String; Property deptName As %String; }

UML Association (Relations = RI) (2) (Parent - Children = Cascaded delete) Class ParentChild.InvoiceLine Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Relationship invoice As ParentChild.Invoice [ Cardinality = parent, Inverse = invoiceLines ]; Property taxRate As %Float; Property units As %Integer; } Class Invoice Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Relationship invoiceLines As ParentChild.InvoiceLine [ Cardinality = children, Inverse = invoice ]; Property invoiceDate As %Date; Property invoiceDescription As %String; Property invoiceNr As %String; }

4. Tools and standaarden Multi-Dimensional Storage Manager Caché Objects Caché SQL interface DictionaryDictionary PlatformsPlatforms Tools en standaarden

Caché Object Connectivity C++C++ JavaJavaCOMCOM Caché Objects Multi-Dimensional Storage Manager. NET High-performance links to all major object architectures

Caché for Web Applications Native connectivity to all major Web development technologies Native connectivity to all major Web development technologies CSP for optimized development speed and scalability CSP for optimized development speed and scalability ASP.NetASP.NetJSPJ2EEJSPJ2EE CachéCaché CSPCSP Web Server +

Web Page Objects CompilerCompiler Caché Server Pages High performance compiled objects High performance compiled objects Single box to n-tier deployment with no modification Single box to n-tier deployment with no modification Code { Based Development } Code { Based Development } < Tag Based Development > < Tag Based Development >

Caché & Java CachéCaché Java App. App.ServerApp.Server EJBEJB Object + SQL “Classic” Java and J2EE “Classic” Java and J2EE Simultaneous object and relational access Simultaneous object and relational access

Caché XML XMLXML Caché Objects Multi-Dimensional Storage Manager EJBEJBC++C++ JavaJavaCOMCOM Bi-directional conversion between objects and multiple XML formats

Caché Web Services High performance Web Service for any Caché method High performance Web Service for any Caché method No middleware No middleware CachéCaché Any Caché Class Web Service Adaptor Web Server SOAP WSDL

Caché Multi-Dimensional Storage Manager Caché SQL interface Your applications Caché Objects DictionaryDictionary XMLXML EJBEJB C++C++ JavaJava COMCOM ODBCODBC JDBCJDBC NativelinkNativelink.Net.Net J2EEJ2EE CSPCSP Web Server SOAPSOAP Others’ Applications Your Web applications COM Gateway SQL Gateway MQ Series Gateway

Demo’s Deel 3

Demo’s  Populate  XML  SOAP  Documentatie generatie  Bitmap indexen ...(op aanvraag)...

Q&A

UML Association (Zonder RI) (Referentiële integriteit via callback methods/methods) Class Department Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Property manager As Employee [ Required ]; Property deptCode As %String; Property deptName As %String; } Class Employee Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Property manages As Department [ Required ] Property firstName As %String; Property hireDate As %Library.Date; Property lastName As %String; } Deel 4