Teemat. Järjestelmätarpeet. Distributed object model. Väliohjelmistot /04/2004. Objekti- ja komponenttiväliohjelmistot. Objektijärjestelmät

Samankaltaiset tiedostot
Distribution issues, global state, clusters, CORBA, etc. Distributed objects

Sisältöä luento 19. Stallings, Luvut Appendix B. Hajautettu olio. Parametrien välitys. Sidonta asiakkaan ja olion välillä

Stallings, Luvut Appendix B

Stallings, Luvut Appendix B

Sisältöä luento 19. Stallings, Luvut Appendix B. Hajautettu olio. Parametrien välitys. Sidonta asiakkaan ja olion välillä

7.4 Variability management

7. Product-line architectures

SOA SIG SOA Tuotetoimittajan näkökulma

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

C++11 seminaari, kevät Johannes Koskinen

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

Efficiency change over time

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

Encapsulation. Imperative programming abstraction via subprograms Modular programming data abstraction. TTY Ohjelmistotekniikka

Security server v6 installation requirements

HITSAUKSEN TUOTTAVUUSRATKAISUT

Security server v6 installation requirements

IoT-platformien vertailu ja valinta erilaisiin sovelluksiin / Jarkko Paavola

Use of spatial data in the new production environment and in a data warehouse

Group 2 - Dentego PTH Korvake. Peer Testing Report

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

812336A C++ -kielen perusteet,

ORB CORBA 101. Palvelinolio. Asiakasolio. Yleistä. Toiminta ja arkkitehtuuri. CORBA 101 Graafisten käyttöliittymien ohjelmointi 2000

Teknologia-arkkitehtuurit. Valinta ja mallinnus

Väliohjelmistojen tyypit. Teemat. Väliohjelmistot /03/2004. Lea Kutvonen 1. Enterprise application anatomy. Enterprise application anatomy

Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto

Sovellusarkkitehtuurit

Ch [Stal 05] Ch , [Tane 01] Ch 20.7 [DDC 04] Ch [Stal05]

16. Allocation Models

Toimilohkojen turvallisuus tulevaisuudessa

Results on the new polydrug use questions in the Finnish TDI data

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

Ylläpitäjät, järjestelmäarkkitehdit ja muut, jotka huolehtivat VMwareinfrastruktuurin

Collaborative & Co-Creative Design in the Semogen -projects

Tietorakenteet ja algoritmit

RINNAKKAINEN OHJELMOINTI A,

Gap-filling methods for CH 4 data

Liikenteen hankeaihioita

Data Quality Master Data Management

Choose Finland-Helsinki Valitse Finland-Helsinki

Ohjelmistoarkkitehtuuri. Verkotettu multimedia. Multimedian vaikutukset. Mediavirtojen puskurointi. Ohjelmointi. Selain-ohjelmistoarkkitehtuuri

TCAP - Transaction Capabilities Sovellusosaa käyttävät

1 Introduction. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2006

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Capacity Utilization

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.

Salasanan vaihto uuteen / How to change password

Integrointi. Ohjelmistotekniikka kevät 2003

JA CHALLENGE Anna-Mari Sopenlehto Central Administration The City Development Group Business Developement and Competence

Rinnakkaisuus (.NET) Juha Järvensivu 2007

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

4 Managing component interactions

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

IHE XDS.b - Kuinka Se Toimii Käytännössä?

Web Service torilla tavataan!

Tietokannat II -kurssin harjoitustyö

Power BI Tech Conference Power BI. #TechConfFI. Johdanto

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.

KONEISTUSKOKOONPANON TEKEMINEN NX10-YMPÄRISTÖSSÄ

2 Description of Software Architectures

Web Services tietokantaohjelmoinnin perusteet

EUROOPAN PARLAMENTTI

21~--~--~r--1~~--~--~~r--1~

2_1----~--~r--1.~--~--~--,.~~

.NET 2006 ja sen jälkeen

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

Microsoft Visual J++ ohjelmointiympäristö

Museo 2015 järjestelmä ja Museoiden luettelointiohjeet

HOJ RPC = Remote Procedure Call (ja Common Object Request Broker Architecture)

LANSEERAUS LÄHESTYY AIKATAULU OMINAISUUDET. Sähköinen jäsenkortti. Yksinkertainen tapa lähettää viestejä jäsenille

Alternative DEA Models

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

Asynkroninen ohjelmointi.net 4.5 versiolla

HARJOITUS- PAKETTI A

Millaisia mahdollisuuksia kyberturva tarjoaa ja kenelle? Ja mitä on saatu aikaan?

ProAgria. Opportunities For Success

ALUEARKKITEHTUURI WEB PALVELUITA KÄYTTÄEN. Niilo Saranummi VTT Tietotekniikka

3. Software components and interfaces

National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007

TAMPEREEN TEKNILLINEN YLIOPISTO Teollisuustalous

Helsinki Metropolitan Area Council

Perinteisesti käytettävät tiedon (datan) tyypit

Tutkimusdata ja julkaiseminen Suomen Akatemian ja EU:n H2020 projekteissa

Mikä yhteyssuhde on?

7 Sulautettujen järjestelmien suunnittelumallit. OhAr Marko Leppänen

The CCR Model and Production Correspondence

MUSEOT KULTTUURIPALVELUINA

TCAP - Transaction Capabilities Sovellusosaa käyttävät

Technische Daten Technical data Tekniset tiedot Hawker perfect plus

Telecommunication Software

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

Travel Getting Around

Green Growth Sessio - Millaisilla kansainvälistymismalleilla kasvumarkkinoille?

T Yritysturvallisuuden seminaari. Enterprise Security Architecture, A Business Driven Approach. Esitys 1: luvut 1-4. Atte Kokkinen, 49302U

Transkriptio:

Objekti- ja komponenttiväliohjelmistot Teemat Järjestelmämallin tarpeet Palvelut ja rajapinnat Sisärakenteet networking and interoperability server control system administration infrastructure Sovellustilanteen arkkitehtuurimallikkeita Realisaatioita Laajennustrendit Järjestelmätarpeet Objekti- ja komponentti-vo:lla yhteiset Arkkitehtuurimalli Hajautetut objektit (distributed objects) Asiakas-palvelin Kehityskaari Käyttöjärjestelmät Laitteistoabstraktio, suoritusaikainen ympstö, peruspalvelut sovelluksille Objektijärjestelmät Komponenttijärjestelmät Objektialustat Objektimalli Objektijärjestelmät osoittaminen, rajapinnat, vuorovaikutustavat, objektien implementointi Objektimallin toteutus ja suoritusaikainen ympäristö Objektien luonti ja elinkaaripalvelut Esimerkkejä: CORBA Vertailu objektikielen ja CORBA-mallin mukaisesta ohjelmointitavasta Schmidt, Vinoski: Object Interconnection. SIGS C++ Report Magazine, May 1995. Objekti- ja komponenttimallit Distributed object model Objektimallit keskittyvät operaatioiden käynnistämiseen Objects are discrete software units they contain data, and can manipulate it. There are four keys: encapsulation, inheritance, polymorphism, and instantiation. Komponenttimallit kuvaavat komponentin toimintaympäristöä Eroihin johtaneita seikkoja invokes a method machine proxy OS network same same method marshalled invocation server machine server server OS object state method skeleton Lea Kutvonen 1

Distributed object model Objektijärjestelmä -- esimerkki CORBA defines, not implementations It simplifies development of distributed applications by automating/encapsulating Object location Connection & memory mgmt. Parameter (de)marshaling Event & request demultiplexing Error handling & fault tolerance Object/server activation Concurrency Security CORBA (Common Object Request Broker Architecture) application Domain Object Request Broker Common object services Common facilities CORBA object services Object naming service Trading service Event service and Notification (async comm) Persistence Transaction service Lifecycle services (factory) Externalisation Systems management services Relationship service (schema) Licensing, time, security, property, DII Overview of CORBA Interface Repository Client ORB CORE STUBS OBJ REF Compiler in args operation() out args + return ORB INTERFACE Implementation Repository SKEL Object (Servant) DSI Object Adapter GIOP/IIOP/ESIOPS CORBA shields applications from heterogeneous platform dependencies e.g., languages, operating systems, networking protocols, hardware runtime Client The program entity that invokes an operation on an object implementation; ideally, identical call mechanism than with object method call within the programming language Object CORBA programming entity that consists of an identity and an implementation, which is known as a servant comm. endpoint POA id iiop:1.0//pachanga:10015/p353bccdb00094ae8/firstpoa/myservant Servant An implementation programming language entity that defines the operations that support a CORBA. Object reference Immutable, opaque reference to object (instance) comm. endpoint POA id iiop:1.0//pachanga:10015/p353bccdb00094ae8/firstpoa/myservant protocol id timestamp protocol id timestamp Lea Kutvonen 2

ORB and ORB core Abstract, standard for communication and helper services manipulating object references binding to common services (naming etc) generic communication primitives Hides object location, implementation, execution state, communication mechanisms IIOP, GIOP request, reply, locaterequest, locatereply, cancelrequest, closeconnection, messageerror, fragment stubs and skeletons proxies for marshalling and unmarshalling messages for transfer over ORB ORB is generic, no appl. standards but compilation for producing stubs and skeletons DII and DSI dynamic invocation, dynamic skeleton when server is introduced too late for static stub selection object adapter has one or more objects under its control unaweare of the specific of the objects controlled, just a dispatcher Object registration, Object reference generation Request multiplexing Server process activation, Object activation with activation policy threading/concurrency policy persistency policy termination policy Object upcalls Support for transactions, security, threading, etc. Overview of POA architecture active object map ORB CORE persistent POA Object adapter Root POA Implementation repository all that is needed to implement and activate objects nonstandard, specific to operating system ORB vendor object adapter table specifying what server should be started, which port number, which file to load and excecute; if already running, where CORBA communication modes Object invocation models syncronous (blocks caller) with at-most-once one-way with best effort delivery deferred syncronous with at-most-once (unblocked till syncronises for reply) Signaling events event service for basic event channel model notification service for more advanced event channels with filtering etc. Message queues messaging service callback model Lea Kutvonen 3

- production Building a CORBA application CORBA compiler Language mappings Interface inheritance Interface repository stores definitions relationships replaceability Interface definitions Interface repository accesses Client stubs includes implementation skeleton includes Implementation installation implementation repository describes Object implementation CORBA limitations No standard way to deploy object implementations limited standard support for common CORBA server programming patterns limited extension of object functionality Inheritance, 1-1 relationship between implementations and Availablity of CORBA object services is not defined in advance No object/system management services defined No standard object life cycle management Object Models and Components Issues that lead to different models Communication vs portability Business functionality vs management Advanced functionality vs guaranteed reuse Object models describe invocation Component models describe component execution environment Tuumaustauko Tiedätkö miltä CORBAobjektit näyttävät? CORBAasiakkaat? -määritykset? Etsi itsellesi esimerkki oppikirjoista tai webtutoriaaleista! pakolliset kehysosat kytkeytyminen ORBiin objektin löytäminen ja sitominen metodikutsujen tekeminen asiakkaan päätöstoimet # %)(/ module HelloApp{ Hello { string sayhello(); ; ; Lea Kutvonen 4

Asiakas Import HelloApp.*; //contains generated stubs Import org.omg.cosnaming.*; Import org.omg.corba*; //must be in all CORBA applications Public class HelloClient { public static void main(string args[]) { try { // create and initialize the ORB ORB orb = ORB.init(args, null); // get the root naming context org.omg.corba.object objref = = orb.resolve_initial_references( NameService ); NamingContext ncref = NamingContextHelper.narrow(objRef); // Resolve the object reference in naming NameComponent nc = new NameComponent ( Hello, ); NameComponent path[] = {nc; // get the stub Hello HelloRef = HelloHelper.narrow(ncRef.resolve(path)); // Call the Hello server object and print results String hello = helloref.sayhello(); system.out.println(hello); catch (Exception e) { System.out.println( Error : + e); e.printstachtrace(system.out); Palvelupuoli Import HelloApp.*; // contains generated stubs Import org.omg.cosnaming.*; Import omg.org.corba.*; Public class HelloServer { public static void main(string args[]); //registration, entering server loop try{ ORB orb = ORB.init(args, null); // creae the servant and register with orb HelloServant helloref = new HelloServant(); orb.connect(helloref); //get root naming context omg.org.corba.object objref = orb.resolve_initial_references( NameService ): NamingContext ncref = NamingContextHelper.narrow(objRef); //bind the object reference to name NameComponent nc = new NameComponent( Hello, ); NameComponent path[] = {nc; ncref.rebind(path, helloref); Muuta materiaalia //wait for invocations from s java.lang.object sync = new java.lang.object (); syncronized (sync) { sync(wait); catch (Exection e) { system.err.println( Error: + s); s.printstacktrace (System.out); //the actual service Class HelloServant extends _HelloImplBase { public string sayhello () { return \nhello world!\n ; POA-kalvoja Schmidt, D., Developing Distributed Object Computing Applications with CORBA. Slide set from http://www.eng.uci.edu/~schmidt/pdf/corba4.pdf Ohjelmointitutoriaaleja http://www.cs.wustl.edu/~schmidt/ace_wrappers/tao/docs /tutorials/quoter/ useimmilla toimittajilla omansa (Sun+Java+CORBA, etc) CORBA-sivustoja http://www.cs.wustl.edu/~schmidt/corba.html http://www.puder.org/corba/ Lea Kutvonen 5