JADE (programming language) - Wikipedia

文章推薦指數: 80 %
投票人數:10人

JADE is a proprietary object-oriented software development and deployment platform product from the New Zealand-based Jade Software Corporation, ... JADE(programminglanguage) FromWikipedia,thefreeencyclopedia Jumptonavigation Jumptosearch Thisarticleisabouttheend-to-enddevelopmentenvironment.FortheJavamiddleware,seeJavaAgentDevelopmentFramework.ForthePug(formerlyJade)Javascripttemplatingengine,seeComparisonofwebtemplateengines. Thisarticlehasmultipleissues.Pleasehelpimproveitordiscusstheseissuesonthetalkpage.(Learnhowandwhentoremovethesetemplatemessages) Thisarticleneedstobeupdated.Relevantdiscussionmaybefoundonthetalkpage.Pleasehelpupdatethisarticletoreflectrecenteventsornewlyavailableinformation.(December2016) Thisarticleneedsadditionalcitationsforverification.Pleasehelpimprovethisarticlebyaddingcitationstoreliablesources.Unsourcedmaterialmaybechallengedandremoved.Findsources: "JADE" programminglanguage – news ·newspapers ·books ·scholar ·JSTOR(December2012)(Learnhowandwhentoremovethistemplatemessage) Thisarticlereliestoomuchonreferencestoprimarysources.Pleaseimprovethisbyaddingsecondaryortertiarysources.(December2012)(Learnhowandwhentoremovethistemplatemessage) (Learnhowandwhentoremovethistemplatemessage) TheJadeSoftwareCorporationlogo JADEisaproprietaryobject-orientedsoftwaredevelopmentanddeploymentplatformproductfromtheNewZealand-basedJadeSoftwareCorporation,firstreleasedin1996.[1][2]ItconsistsoftheJADEprogramminglanguage,Integrateddevelopmentenvironmentanddebugger,integratedapplicationserverandobjectdatabasemanagementsystem. Designedasanend-to-enddevelopmentenvironmenttoallowsystemstobecodedinonelanguagefromthedatabaseserverdowntotheclients,italsoprovidesAPIsforotherlanguages,including.NETFramework,[3]Java,C/C++andWebservices. Althoughafreelimitedlicenceisavailablefordevelopment,usingtheJADEplatformrequiresper-processfeestobepaid. Contents 1Language 1.1Programmingmodel 1.2Programstructure 2Features 2.1Objectdatabase 2.2Three-tiermodel 2.3Typesofclients 2.3.1JADEForms 2.3.2HTMLdocuments 2.3.3Webservices 2.3.4Interoperability 2.4Multilingualabilities 2.5Portability 3Codeexamples 3.1HelloWorld! 4History 5Seealso 6References 7Externallinks Language[edit] Insyntax,JADEisverysimilartoPascal;itssyntaxisbasedonthelanguageModula-2,whichwasderivedfromPascal.WhileitincludesinnovationslackinginPascalorModula-2,itlackscertainfeaturesofothermodernobject-orientedlanguagessuchasC#andJava.[4] JADEisabletoimportandrunLINC4GLprogramsandwasinitiallyitscorerole. Programmingmodel[edit] Likealloftheotherpopularprogramminglanguagesusedtocreatedatabase-drivensoftware,JADEisfullyobject-oriented.JADEwasdesignedtohaveallthemostimportantfeaturesofobject-orientedprogramming,butdoesnotsupporttheoverloadingofmethodsoroperators,anduntilJade2018lackedparameterisedconstructors.[4] ClassesinJADEarekepttogetherinschemas.SchemasservethesamepurposeasJavapackagesornamespacesin.NET,buthaveahierarchy,andinheritclassesfromsuperschemas.Thisbecomesusefulespeciallywhenprogrammingusingthemodel–view–controllermethodology,asmodelclassescanbeputinoneschema,thenthecontrollerandviewclassescanbebuiltontopofthemodelclassesinasubschema. Programstructure[edit] JADEprogramsaredevelopedusingauserinterfacethatallowsprogrammerstovisuallycreateclassesanddefinetheirpropertiesandmethods.Insteadoflocatingmethodsinlargefiles,programmersselectthemethodtheywouldliketoeditandonlythecodeforthatparticularmethodisdisplayed.Alsoinsteadofcompilingallthecodeofaprogramatonce,inJADE,eachmethodiscompiledindividuallyassoonasthemethodiscompleted,meaningcodecanbecheckedimmediately. AllthecodeforaJADEapplicationisstoredinitsobject-orienteddatabase.Thisallowsformulti-userdevelopmentasthedatabasemaintainsconcurrencycontrol,andwitheachpieceofthecodebeingaseparateobjectinthedatabase,itisoftenpossibletorecodeasystemwhileitisliveandonlineaslongasthepartsofthesystembeingchangedarenotinuse. Features[edit] ThemaingoalofJADEwastocreateaseamlesslyintegratedprogramminglanguagethatwouldallowdeveloperstocreateoneapplicationthatwouldgofromend-to-endinsteadofhavingtowritethreeseparateapplicationsforthedatabaseserver,applicationserverandpresentationclientandthenwritethecodeforthemtocommunicatewitheachother. Objectdatabase[edit] ThemoststrikingdifferencebetweenJADEandotherobject-orientedprogramminglanguagesisthatitsobjectdatabaseisanativepartofitslanguage.Forexample,whencreatinganobjectinJADE,itcanbecreatedastransientorpersistent.Creatinganobjectastransientissimilartocreatingobjectsinotherobject-orientedprogramminglanguages–theobjectissimplycreatedinmemory,andthenlostwhentheprogramends.Ontheotherhand,whenanobjectiscreatedaspersistent,whentheprogramends,theobjectwillstillexistandbetherethenexttimetheprogramstartsup.So,whenanobjectispersistentJADEautomaticallyworksinthebackgroundtostoreandretrievetheobjectinthedatabasewhennecessary.Persistentobjectscanbedistributedacrossmultipleco-operatingservers,withJADEautomaticallyhandlingobjectcachingandcachecoherency. ThereareveryfewdifferencesbetweenmanipulatingtransientandpersistentobjectssoJADEmakesitappeartotheprogrammerasifalltheobjectsintheentiredatabasewereinlocalmemory.Mostofthetime,JADE'sobject-orienteddatabaseisusedinamulti-usersystem,andsoJADEmakesitappeartotheprogrammerasifalltheobjectsinthedatabasewerestoredinsharedmemorythatallusersconnectedtothesystemcanaccess,evenfromdifferentcomputers. Withalloftheprogramcodecentralisedonthedatabaseserveraswellthedata,allclientnodescanbeprogrammedasiftheywererunningonthedatabaseserver. JADE'sdatabaseisinherentlyobject-oriented,andACID-compliant,andhasallofthestandardfeaturessuchasatomictransactions,locking,rollback,crashrecoveryandtheabilitytokeeponeormoresecondarydatabaseserverssynchronisedwiththemaindatabaseforbackup,disasterrecoveryandperformancereasons. Tointeroperatewithrelationaldatabasesforreporting,businessintelligenceanddatawarehousepurposesJADEsince2010hasprovideda"RelationalPopulationService"thatenablesautomaticallyreplicatingobjectsfromitsnativeobject-orientateddatabasetooneormorerelationaldatabase.ThisfeaturesupportsMicrosoftSQLServerversions2000,2005and2008. Three-tiermodel[edit] Database-drivensoftware,oftenusesathree-tiermethodologywithapplicationsbeingsplitintothreetiers–datastorage,processingandpresentation.Inthedatastorageandprocessingtiers,JADEsystemsareacollectionofco-operatingservers,callednodes,andmultiplenodesmaybeinvolvedineachtier.Eachtypeofnodehasadifferentnameandallarecapableofmanipulatingobjectsandexecutingbusinesslogic.Acollectionofnodescanbedeployedacrossoneorseveralmachines.Databaseservershandledatastorageandcanalsoexecutebusinesslogic,whileapplicationservershandleprocessing.Inathree-tiermodel,presentationclientsprovidetheuserinterface.JADEalsoprovidesatwo-tierclientthatcombinestheabilitiesofanapplicationserverandpresentationclient.Traditionally,thesethreetierswouldbecreatedbycombiningthreeprogramsandhavingthemcommunicatetoformonesystem.Havingthedifferentprogramsseparatelikethishasmanyadvantages,themainoneisthatthesystembecomesscalable,thatis,raisingthepowerofthesysteminvolvessimplyaddingmorenodes. Designingasystemlikethisgivestheprogrammeradecisiontoconsidereverytimetheywanttocodeinaparticularfunction.Theyneedtodecidewhetherthefunctionwouldrunbestonthedatabaseserver,applicationserverorpresentationclientbeforetheybegincodingasitwillbedifficulttochangethatdecisiononcethefunctionalityiscodedintooneofthetiers. ThisisdifferentforJADEapplications,astheyarecodedasoneapplicationfromend-to-end.WhencreatingaJADEapplication,theprogrammercanthinkasiftheywerecreatingaprogramthatwillberunningonthedatabaseserver–asifallthedatastorage,processingandpresentationwerehappeningononecomputer.Whentheprogramrunsonthreetiers,JADEautomaticallyknowstorunallthecodebydefaultontheapplicationserver,andtosenddatabaserequestsuptothedatabaseserveranduserinterfaceinformationdowntothepresentationclient.However,itisveryeasyfortheprogrammertoswitchthelocationatwhichaparticularmethodisrunandmoveittoadifferenttierbychangingthemethodsignature.Becauseofthis,thedecisiononwhereaparticularpieceofcodeshouldruncanbemadelateinthedevelopmentcycle,andrefactoringcodetorunondifferentpartsofthesystemendsupbeingaloteasierbecauseofthewayJADEallowsend-to-enddevelopmentofsoftware. Typesofclients[edit] ProgrammershavethefacilitytoallowthreedifferentkindsofclientstoconnecttoaJADEsystem.Thesethreetypesofclientsarenamed: JADEForms HTMLDocuments WebServices Inthesameschema,aJADEdevelopercancreatemanycompletelyseparateapplicationswhichmayprovidedifferentinterfacestoaccessthesamedatabase. JADEForms[edit] JADEFormsapplicationsaremadeupofforms,asthenamesuggests.ClientsneedtoconnectthroughtheJADESmartthinclientorStandardClienttobeabletorunapplicationsthatuseJADEForms. TheSmartThinClientworksbyconnectingtoanApplicationServerwhichgenerallydoesalltheprocessingonbehalfoftheSmartThinClient,meaningthethinclientonlyneedstoberesponsiblefordisplayingformsandtakinginput.Thismeansthecomputerrunningthethinclientdoesnothavetobeaverypowerfulcomputer,anditdoesnotrequireafastnetworkconnectionasitisnotloadingdatafromthedatabase–JADEthinclientsareoftenrunoveradial-upconnection.Thisisthereasontheyarecalledthinclients,asthereisnotaheavyrequirementoncomputationalpowertoruntheseclients. TheStandardClientisjusttheSmartThinClientcombinedwiththeApplicationServerononemachine.Inthiscase,thenoderunningtheclientdoesalloftheprocessingaswellasthepresentation.Standardclientshavegreaterdemandsoncomputationalpowerthanthinclients,astheymustloaddatafromthedatabaseaswellasdotheirownprocessing. TheadvantagesofusingJADEFormsinclude: Outofthethreekindsofclients,JADEFormsprovidetheshortestdevelopmenttimeofJADEapplications. Allowsdeveloperstousethesametechnologyend-to-end. Smartthinclientscanbepackagedupsotheycanbeinstalledandrunonclientcomputersinseveralclicks. Thedisadvantagesare: CannotreachaworldwideaudienceasispossibleontheWorldWideWeb. JADEFormshaveaninterestingtwisttothemthough.ItisactuallypossibletorunaJADEFormsapplicationthroughawebbrowserbychangingitsmodetoweb-enabled.Whenthishappens,JADEautomaticallygeneratesHTMLcodetomakepagesthatresembletheformsandcontrols,withoutanymodificationstothecode.ThisisaveryquickwayforprogrammersthatarenotcompetentwithHTMLandotherwebtechnologiestodeliveraprogramthroughtheweb. HTMLdocuments[edit] JADEsupportsdeploymentofapplicationstothewebthroughitsHTMLdocumentsfeature.TheseworkverysimilarlytoASP.NET,wheredeveloperscreatetemplatesofHTMLpagesandleavepartsinthetemplatefortheprogramtofillin. TheadvantagesofusingHTMLdocumentsare: Allowstheapplicationtoreachaworldwideaudience. Thedisadvantagesare: WhenJADEapplicationsuseHTMLdocuments,theyarenolongerusingthesametechnologyfromendtoend.CheckingatthefrontendofthesystemmaybedonethroughJavaScriptforexample. Offloadingsomeoftheprocessingtofront-endclientsisnolongeraseasyorsecure. Webservices[edit] Webservicesareusedtoallowdifferentprogramstocommunicatewitheachotherfromremotelocationsinanobject-orientedform.Webservicescannotbeaccesseddirectlybyhumanusers.OneoftheusesofWebserviceswithJADEistoallowothertechnologiessuchas.NETorJavatouseJADEasthebackendobject-orienteddatabase.WebservicesalsoallowJADEsystemstointeroperatewithservicesprovidedbyothernon-JADEsystems. Interoperability[edit] InadditiontoWebservices,JADEisalsocapableofinterfacingwithotherprogramsthroughlanguageAPIs(including.NET,Java,C/C++),DLLcalls,ActiveX/COMobjectsand.NETassemblies.Thisallowsotherprogramstoaccessobjectsandexecutemethods,andcanbeusedtoprovideadifferentinterfacetoaJADEapplication.JADE6.2providedaJavaAPI,.NETAssemblyintegrationandtheabilitytorunSmartThinClientsonWindowsMobiledevices.JADE6.3providesanAPIfor.NETlanguages. Multilingualabilities[edit] JADEnativelysupportsmultilingualprograms.Itdoesthisinseveralways: Stringscanbemarkedastranslatable,whichmeanstheywillbechangedependingonthecurrentlanguage. Manyversionsofthesameformcanbecreatedtosuiteachlanguage.Thismeansinterfacescanlookentirelydifferentfromonelanguagetothenext. Thedeveloperhasmethodsavailabletoaccessthecurrentlocaleofthesystemandsotheycanimplementtheirownlanguage-dependentfeatures. JADEwillautomaticallyswitchtothelanguageitdetectsonthesystemifthelanguageisprovidedbythedeveloper. Portability[edit] CurrentlyJADEapplicationscanonlyberunonWindows,Linuxsupporthasbeendropped.JADE6.2allowsSmartThinClientsandaspecialisedStandardClienttorunonWindowsMobiledevices. Codeexamples[edit] InthissectionaresomeshortexamplesofJADEcode. HelloWorld![edit] Thisisthe"HelloWorld!"codeinJADE: helloWorld(); begin app.msgBox("Hello,World!","Hello,World!",MsgBox_OK_Only+MsgBox_Information_Icon); end; or helloWorld(); begin write"Hello,World!"; end; History[edit] JADEwasoriginallyconceivedbySirGilbertSimpsonandiscurrentlydevelopedbytheJadeSoftwareCorporation.[5] ThefirstversionofJADEwasJADE3,releasedSeptember1996. ThecurrentversionisJADE2020,replacingJADE2018[6] Seealso[edit] Databasemanagementsystem Object-orientedprogramming Objectdatabase References[edit] ^"Jade–WhoWeAre".JadeSoftwareCorporation. ^"JadeSoftwaredeliversJade7.1".ZDnet.Retrieved21December2019. ^"ScoopIndependentNews–JADE6.3".Retrieved21December2019. ^abToady,Tim(3June2009)."JADE:ObscureProgrammingLanguageoftheMonth".DevTopics.Retrieved12March2021. ^JadeSoftwareCorporation ^"Latestversion". Externallinks[edit] Officialwebsite ExamplesandTutorialsforJADEProgrammers JADE6.1deliversdatareplicationtoMicrosoftSQLServer Retrievedfrom"https://en.wikipedia.org/w/index.php?title=JADE_(programming_language)&oldid=1028664018" Categories:AlgolprogramminglanguagefamilyConcurrentprogramminglanguagesClass-basedprogramminglanguagesData-centricprogramminglanguagesObject-orienteddatabasemanagementsystemsObject-orientedprogramminglanguagesPersistentprogramminglanguagesProgramminglanguagescreatedin1996SoftwarecompaniesofNewZealandHiddencategories:WikipediaarticlesinneedofupdatingfromDecember2016AllWikipediaarticlesinneedofupdatingArticlesneedingadditionalreferencesfromDecember2012AllarticlesneedingadditionalreferencesArticleslackingreliablereferencesfromDecember2012AllarticleslackingreliablereferencesArticleswithmultiplemaintenanceissuesUsedmydatesfromJune2014OfficialwebsitedifferentinWikidataandWikipedia Navigationmenu Personaltools NotloggedinTalkContributionsCreateaccountLogin Namespaces ArticleTalk English Views ReadEditViewhistory More Search Navigation MainpageContentsCurrenteventsRandomarticleAboutWikipediaContactusDonate Contribute HelpLearntoeditCommunityportalRecentchangesUploadfile Tools WhatlinkshereRelatedchangesUploadfileSpecialpagesPermanentlinkPageinformationCitethispageWikidataitem Print/export DownloadasPDFPrintableversion Languages FrançaisPortuguêsУкраїнська Editlinks



請為這篇文章評分?