Mechanizmy reagowania na wyj tkowe sytuacje w dªugotrwaªych procesach biznesowych. Rozwój, porównanie i zastosowanie w systemie obsªugi cash pooli.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Mechanizmy reagowania na wyj tkowe sytuacje w dªugotrwaªych procesach biznesowych. Rozwój, porównanie i zastosowanie w systemie obsªugi cash pooli."

Transkrypt

1 Uniwersytet Warszawski Wydziaª Matematyki, Informatyki i Mechaniki Sebastian Tomaszewski Nr albumu: Mechanizmy reagowania na wyj tkowe sytuacje w dªugotrwaªych procesach biznesowych. Rozwój, porównanie i zastosowanie w systemie obsªugi cash pooli. Praca magisterska na kierunku INFORMATYKA Praca wykonana pod kierunkiem dra Piotra Chrz stowskego-wachtla Instytut Informatyki wrzesie«2009

2 O±wiadczenie kieruj cego prac Potwierdzam,»e niniejsza praca zostaªa przygotowana pod moim kierunkiem i kwalikuje si do przedstawienia jej w post powaniu o nadanie tytuªu zawodowego. Data Podpis kieruj cego prac O±wiadczenie autora (autorów) pracy wiadom odpowiedzialno±ci prawnej o±wiadczam,»e niniejsza praca dyplomowa zostaªa napisana przeze mnie samodzielnie i nie zawiera tre±ci uzyskanych w sposób niezgodny z obowi zuj cymi przepisami. O±wiadczam równie»,»e przedstawiona praca nie byªa wcze±niej przedmiotem procedur zwi zanych z uzyskaniem tytuªu zawodowego w wy»szej uczelni. O±wiadczam ponadto,»e niniejsza wersja pracy jest identyczna z zaª czon wersj elektroniczn. Data Podpis autora (autorów) pracy

3 Streszczenie Sªowa kluczowe 11.3 Informatyka Dziedzina pracy (kody wg programu Socrates-Erasmus) TODO J. Computer Applications J.1. Administrative Data Processing J.1.3. Financial Klasykacja tematyczna Tytuª pracy w j zyku angielskim

4

5 Spis tre±ci Wprowadzenie Historia stron Transakcyjno± Pocz tki transakcji ACID Rozwój modeli transakcji Pªaski model transakcji OLTP Procesy i SOA Sieci przepªywu pracy Usªugi sieciowe Kraty transakcji Specykacje formalne stron System obªugi cash pooli - 5 stron Cash pool Zarz dzanie pªynno±ci Zasada dziaªania Sytuacja prawna Korzy±ci Platforma Motywacja Wymagania Koncepcja Procesy w systemie - 5 stron Sposób dziaªania Procesy Proces ko«ca dnia Proces pocz tku dnia Proces dzienny Kroki procesów

6 4.4. Obsªuga sytuacji nieprawidªowych Analiza narz dzi - 10 stron Wyj tki Idea J zyki programowania U»yteczno± Zr by Technologie Propozycja rozwi zania stron Podsumowanie Bibliograa

7 Wprowadzenie 5

8

9 Rozdziaª 1 Historia stron 1.1. Transakcyjno± Transakcje s bardzo wa»ne w informatyce, dlatego mechanizmy te zostaªy opisane w ogromnej ilo±ci literatury, m. in. [Bern87], [Gray93], [Weik02]. W tym podrozdziale nie przeprowadz dogª bnej analizy tej tematyki. Ogranicz si do przedstawienia gªównych za- ªo»e«zarz dzania transakcjami w celu opisania idei, która posªu»yªa do dalszego rozwoju mechanizmów transakcyjnych Pocz tki transakcji Czym jest transakcja? W zasadzie, koncepcja transakcji byªa wynaleziona ju» 6000 lat temu, kiedy Sumerowie zapisywali na glinianych tablicach stan królewskich wªo±ci, w celu badania ich zmian. Ogólnie mówi c, transakcja jest transformacj z jednego stanu w inny. W trakcie tysi cy lat pomysª ten zostaª zaadoptowany w wielu innych dziedzinach»ycia, np. w ±wiecie biznesu, transakcja jest umow miedzy kupuj cym a sprzedaj cym na wymian towaru i pieni dzy. W okresie rozwoju baz danych na przeªomie lat 60-tych i 70-tych transakcje zostaªy zawarte w pierwszych urz dzeniach obsªugi transakcji takich jak CICS opracowany przez IBM. W bazach danych rzeczywisty stan ±wiata zewn trznego jest modelowany poprzez relacje i krotki, a transformacje s obrazowane jako modykacje danych. Patrz c z tej perspektywy widzimy transakcje jako grup operacji u»ywanych w celu dost pu albo zmiany bazy danych. Pomimo i» wiedziano,»e atomowo± (patrz dalej) jest bardzo wa»nym problemem, nie powstaª»aden formalny model a implementacje bazowaªy na reguªach empirycznych. Pierwsza próba formalnego przedstawienia kontroli wspóªbie»no±ci miaªa miejsce w pracy [Eswa76]. Wprowadzaªa ona dwu-fazowe blokowanie, a pó¹niej staªa si podstaw teorii szeregowalno±ci, która ci gle jest baz dzisiejszych rozwi za«zarz dzania wspóªbie»no±ci w bazach danych. Problem odporno±ci na bª dy byª równie» badany w tym okresie i przedostaª si do ±wiata baz danych - [Gray78] opisaª protokoªy DO-UNDO-REDO oraz WAL (write-ahead logging) ACID Atomowo± Wyobra¹my sobie sytuacj kiedy program wielow tkowy operuje na wspólnej pami ci w wieloprocesorowej maszynie. Niskopoziomowe operacje sprz towe takie jak atomowa wymiana 7

10 (wymiana zawarto±ci rejestru procesora i jednostki pami ci w jednej niepodzielnej akcji) s podstawowymi funkcjami, dzi ki którym mo»na konstruowa bardziej zªo»one mechanizmy synchronizacji. Elementarne operacje maj bardzo proste wªasno±ci, przez co s bardzo wa»ne w programowaniu wspóªbie»nym, gdy» co uªatwiaj dowodzenie poprawno±ci i zapewnienie,»e zªo»one operacje z nich konstruowane s zgodne ze specykacj. Zªo»ona operacja jest deniowana jako sekwencja akcji, które mog by zarówno atomowe, jak i zªo»one. Gªówn ide transakcji jest przeniesienie wªasno±ci funkcji skªadowych na ich zªo»enie. Do opisania wyniku akcji, potrzebujemy kilku podstawowych poj. wiat (zwany równie» jako system) skªada si z obiektów, ka»dy z nich ma dobrze zdeniowany stan (zazwyczaj warto±ci zbioru zmiennych). Globalny stan ±wiata jest sum stanów pojedynczych obiektów. Proces jest sekwencj akcji, które s zdeniowane nast puj co: przy danym stanie pocz tkowym systemu oraz (ewentualnie) podanej warto±ci wej±ciowej, wynikiem akcji (wykonywanej samotnie) jest sprowadzenie systemu do stanu ko«cowego w sko«czonym czasie oraz (ewentualnie) dostarczenie wyniku. Dla ka»dej akcji, ko«cowy stan oraz wynik s okre±lone jako funkcja ze stanu pocz tkowego oraz warto±ci wej±ciowej. Caªy model jest w zasadzie maszyn stanow. Wykonania procesów mog ponosi pora»k. Ma to miejsce, gdy zachowanie systemu (albo którego± z jego komponentów) nie speªnia specykacji. Istniej ró»ne klasy bª dów w zale»no±ci od ich wa»no±ci i poziomu zakªócania pracy systemu. Tutaj skupimy si jedynie na bª dach przerywaj cych dziaªanie aplikacji(ang. fail-stop failure): komponent albo dziaªa zgodnie ze specykacj, albo nie dziaªa w ogóle. Zakªadamy,»e istnieje trwaªy magazyn danych(ang. stable storage), tzn. gwarantuj cy,»e zapisane w nim dane s odporne na uszkodzenia (wykluczaj c katastrofy czyli rzadkie zdarzenia, które mog skutkowa uszkodzeniem sprz tu i utrat danych). Techniki implementacji takich mechanizmów zostaªy opisane w [Lamp79]. Teraz dochodzimy do poj cia atomowo±ci, wªasno±ci elementarnych akcji, które chcemy przenie± równie» na ich zªo»enie. Atomowo± istnieje w dwóch pªaszczyznach: atomowo± wspóªbie»no±ci(ang. concurrency atomicity) - We¹my dwie akcje A i B wykonuj ce si niezale»nie we wspóªbie»nych procesach (co oznaczamy jako A B). Je±li»adna nie wykonaªa si bª dnie, to wynik ich dziaªania (warto±ci wyj±ciowe albo zmiana stanu systemu) jest taki, jak gdyby wykonaªy si po kolei w dowolnej kolejno±ci (A;B albo B;A). Innymi sªowy: zªo»ona operacja przechodzi poprzez stany po±rednie (stany ko«cowe jej skªadowych) i»aden z tych stanów nie mo»e by widoczny dla»adnej wspóªbie»nej operacji. Tak przedstawiona atomowo± wspóªbie»na nazywana jest izolacj. atomowo± awarii(ang. failure atomicity) - We¹my akcj A, która wykonana niezale»- nie zmienia stan systemu z S1 na S2 (co oznaczamy jako S1 A S2). Je±li wyst pi bª d podczas wykonania A stan ko«cowy jest albo S1 albo S2. Oznacza to,»e operacja jest wykonywana w caªo±ci albo wcale. Tak jak poprzednio,»aden stan po±redni nie mo»e by widoczny. Poza bª dami wynikªych z przyczyn zewn trznych, operacja mo»e zdecydowa o przerwaniu swojego dziaªania i anulowaniu wszystkich wykonanych do tej pory zmian. Tak sytuacj nazwiemy przerwaniem(ang. abort). Je±li S1 A S2, to wynikiem przerwania wykonania A jest przywrócenie w systemie stanu S1, co nazywa si odwróceniem(ang. rollback). Dzi ki atomowo±ci bez straty ogólno±ci mo»emy przenie± t sytuacj to wykonania wi kszej liczby wspóªbie»nych operacji. 8

11 Transakcje w bazach danych Transakcje w przedstawionym znaczeniu zostaªy po raz pierwszy u»yte w systemach zarz dzania bazami danych. Wzbogacono je o dwie dodatkowe cechy: trwaªo± - trwaªo± oznacza,»e je±li transakcja si powiedzie (wykona si bezbª dnie i nie zostanie wycofana), zmiany wykonane na bazie s zachowane. Oczywi±cie stan mo»e zosta zmieniony przez kolejne transakcje. Operacja oznaczaj ca pomy±lne zako«czenie transakcji jest nazywana zapami taniem(ang. commit). Trwaªo± oznacza,»e kiedy transakcja jest zapami tana, zmiany które wykonaªa s odporne na bª dy (wyª czaj c katastrofy). spójno± - spójno± w bazach danych jest wyra»ana zazwyczaj jako zbiór ogranicze«, np. predykatów okre±lanych na jej stanie. Te ograniczenia odzwierciedlaj wªasno±ci rzeczywistych obiektów reprezentowanych przez baz danych (konta bankowe, inwentarz, zawarto± biblioteki). Poniewa» spójno± jest wymagana podczas caªego»ycia bazy danych, transakcja przeprowadza system z jednego spójnego stanu w inny spójny stan. Podczas wykonania, niektóre po±rednie stany mog by niespójne, ale, dzi ki atomowo- ±ci, nigdy nie s widoczne. Spójno± jest okre±lana poprzez wymogi konkretnej aplikacji, dlatego cz sto same mechanizmy bazodanowe s niewystarczaj ce i odpowiedzialno±ci programisty jest pisanie kodu, który zachowa stan danych spójnym w szerszym zakresie. Wªasno±ci ACID (atomowo± (ang. Atomicy), spójno± (ang. Consistency), izolacja(ang. Isolation), trwaªo± (ang. Durability)) zostaªy przedstawione we wczesnych latach 80-tych (np. [Gray81]). Przegl d wczesnych technik odtwarzania danych znajduje si w [Haer83]. Wszystkie te poj cia znalazªy zastosowane przy projektowaniu wielu systemów zarz dzania bazami danych, w tym przeªomowego System-R ( [GMBL81]), który jako pierwszy wykorzystywaª j zyk zapyta«sql i byª dowodem na to,»e relacyjne bazy danych potra by wydajne ( [SysR-Web]). Powy»sze wªa±ciwo±ci zostaªy uj te w matematycznej teorii szeregowalno±ci. Transakcje ACID odniosªy wielki sukces, gdy» dzi ki swoim cechom zapewniaªy,»e stan systemu jest spójny nawet w przypadku bª dów oraz nietypowych zdarze«, pomimo wspóªbie»nego wykonywania zada«. Za swoj prac i wkªad w rozwój informatyki Jim Gray otrzymaª Nagrod Turinga w roku Mechanizm dziaªania Transakcje sprzyjaj rozdzieleniu koncepcji, poniewa» pozwalaj programistom skoncentrowa si na logice aplikacji (m. in. dbaniu o spójno± danych biznesowych), podczas kiedy system zarz dzania transakcjami jest odpowiedzialny za zapewnienie pozostaªych wªasno±ci transakcji (atomowo±, izolacja i trwaªo± ). Te trzy cechy s zapewnione dzi ki nast puj cym mechanizmom ( [Gray93]): Izolacja jest osi gni ta przez kontrol wspóªbie»no±ci, podstawowym mechanizmem jest tu blokowanie obiektów. System zarz dzania baz danych zakªada blokady na odpowiednich obiektach kiedy programy na nich operuj. Blokady s utrzymywane dopóki transakcja si nie zako«czy, zapobiegaj c przed odczytem niespójnych danych przez wspóªbie»ne transakcje w czasie trwania niesko«czonej transakcji. Inna technik jest stemplowanie obiektów datami systemowymi i zarz dzanie dost pem poprzez kontrol stempli. 9

12 Atomowo± jest zapewniana przez odzyskiwanie(ang. recovery), która bazuje na mechanizmach logowania. Ka»da modykacja bazy danych jest zapisywana w tabeli loguj cej, która jest przechowywana niezale»nie od samych danych. Odwrócenie mo»e si wykonywa poprzez przywrócenie poprzednich warto±ci ka»dego obiektu znalezionego w logu. Trwaªo± zale»y od atomowo±ci awarii i bazuje na trwaªym magazyn danych. Podobnie jak w tracie odwracania, po awarii aktualny stan mo»e by odtworzony na podstawie logu. Zauwa»my,»e blokowanie jest niezb dne, aby logowanie dziaªaªo prawidªowo. Je±li kilka czynno±ci zmodykowaªo ten sam obiekt w tym samym czasie, nie byªoby wiadome który stan powinien zosta odtworzony kiedy jedna z operacji wymaga cofni cia. Programowanie System zarz dzania transakcjami udost pnia swoim u»ytkownikom prosty interfejs. Skªadnia operacji mo»e si ró»ni w zale»no±ci od systemu, ale podstawowy interfejs zazwyczaj skªada si z nast puj cych funkcji: begin transaction - rozpocz cie nowej transakcji. commit transaction - poprawne zako«czenie transakcji (zmiany zostaj trwale zapisane). abort/rollback transaction - przerwanie wykonania transakcji i anulowanie zmian wykonanych od jej rozpocz cia do tego momentu. Powy»sze operacje sªu» do rozgraniczania zasi gu transakcji, czyli rozdzielenia operacji b d cych cz ±ci transakcji. Granice mog by dokªadnie zdeniowane przez programist, b d¹ automatycznie wygenerowane na podstawie deklaracji w ±rodowisku programowania. Kluczowe znaczenie ma fakt,»e powy»sze mechanizmy powalaj caªkowicie ukry przed programist zarówno bª dy jak i przeploty. Mo»e on po prostu pisa kod wykonuj cy wa»ne operacje biznesowe oraz opakowywa kod w konstrukcj transakcyjn. System zapewni to,»e program zawsze wykona si jakby byª jedyn i niepodzieln jednostk pracy(ang. unit of work), caªkowicie niezale»nie od innych akcji które mog dziaªa wspóªbie»nie z jego wykonaniem. Je±li operacja zako«czy si z powodzeniem to system zarz dzania transakcjami zapewni zapisanie zmian w bazie danych, pomimo mo»liwych bª dów kolejnych transakcji. Je±li jednak wykonaªa si cze± pracy, ale bª d powstrzymaª program przed zako«czeniem, system wykona odwrócenie niesko«czonej akcji, czyli przywróci dane do stanu sprzed rozpocz cia operacji Rozwój modeli transakcji 3 Advanced transaction models 9.5 Advanced Transaction Models Pªaski model transakcji ACID is good Do you remember when you rst learned to write a program? Perhaps it was in high school. Looking back, remember how simple it was? You didn't worry about the eects of your 10

13 program failing. You didn't worry about the eects of multiple users and multiple threads of control accessing shared data. You simply wrote your single threaded algorithms on transient data. Maybe you accessed les, but you probably didn't worry too much about it. If you develop challenging distributed enterprise applications and systems, short ACID transactions are your friends. The ACID properties of transactions enable you to write software without considering the complex environment in which the application runs. ACID transactions bring simple high-school programming to the complex real world. With ACID transactions you can concentrate on the application logic and not on failure detection, recovery and synchronizing access to shared data. With ACID transactions, your software need not include logic to recover the state of the application should it fail. Instead you simply dene transaction boundaries in your application and the system ensures atomicity the actions taken within the transaction will happen completely, or not at all. If the application fails midstream, the system will recover to the previous state, as if the transaction never took place. If you have ever written an application without transactions that attempted to detect failures and recover from them, you know that logic can get quite complex. ACID transactions preserve consistency. Assuming there are no bugs in your transaction, the transaction will take the system from one consistent state to another. The good news is that atomicity and isolation make writing a transaction without bugs easier. You focus on getting the application logic correct in the high school programming environment, not in the complex environment. Consistency is especially important in a web application with dynamic servers. When users navigate a web application, they are viewing snapshots of the server state. If the snapshot is computed within a transaction, the state returned to the user is consistent. For many applications this is extremely important. Otherwise the inconsistent view of the data could be confusing to the user. Many developers have the incorrect perception that you don't need transactions if all you are doing is reading a database. If you are doing multiple reads and you want them to be consistent, then you need to do them within a transaction. With ACID transactions, your software need not be a complicated concurrent program in which you explicitly synchronize multiple concurrent activities accessing shared data. The concurrent transactions are isolated from each other. There is concurrency multiple transactions accessing shared data can run concurrently it's just that you do not have to worry about it in your application. The transaction code is written assuming it is the only code accessing the data. The individual actions of a transaction are scheduled to execute according to some notion of correctness. A schedule is serializable if it has the same eect as running the transactions serially, that is just the way you wrote the code. It is up to the system to produce a correct schedule. If you have ever written a complex multi-threaded program, you know it is hard to get it right, test it and debug it. Serializability is a formally dened property that allows you to avoid concurrent programming. Many databases and some application servers weaken serializability with their so-called isolation levels. This requires you to reason about using inconsistent data and this is hard. You have to use application knowledge to argue that a transaction reading an inconsistent, possibly to be rolled-back value, doesn't matter to the correctness of the application. Furthermore, the weaker isolation levels are not the same from one database to another. This makes porting your application very hard. Only until recently have the weaker isolation levels been formally dened. [ALO] Finally, the eects of transactions are durable, that is when a transaction commits the new state is persistently stored. Durable makes for a nice acronym. Take it in Short Doses 11

14 Unfortunately, ACID transactions do not work eectively over a long period of time. Do not expect things to work if your transactions last more than even a few seconds. Forget putting transaction boundaries around units of work that last minutes, hours, days, months or years. This eliminates dening transactions that do a lot of computation or ones that include user input. Users are nicky they drink coee, go on vacation and die. You cannot expect them to commit their work in a timely manner. This is the so-called long transaction problem. No one has found a solution for it after many years of research. The basic problem is achieving isolation the I in ACID. There are no known concurrency control algorithms that will operate over a long period of time. Concurrency control algorithms for ensuring serializability come in two avors: pessimistic and optimistic. Pessimistic concurrency control algorithms achieve serializable transactions by locking shared resources. In two-phase locking, a transaction obtains its locks in phase 1 and holds on to them until it completes. Competing transactions waiting for the same shared resource block until the rst transaction completes. If the transaction holds the shared resource for a long time, little work is accomplished concurrently because the competing transactions are blocked for a long time. Optimistic concurrency control algorithms let transactions access shared resources and then validate the resulting schedule at commit time. If the schedule violates serializability, the transaction is rolled back. This works when the transactions are short a small amount of work is rolled back. If the transaction is long-lived, the system appears to be humming along but after doing all of that work, it starts rolling back the transactions. When we apply VCRP to evaluate the traditional transactions or at transactions with no internal structures, we get the strict ACID properties that are essential for these relatively simple transactions. The underlying transaction processing (TP) system is responsible for ensuring the ACID properties. A TP system generally consists of a TP Monitor, which is a system program providing a middleware solution to manage 6 transactions and control their access to a Database Management System (DBMS), one or more DBMSs and a set of application programs containing transactions [Lewis et al. 2002]. Atomicity and durability are guaranteed by the mechanism of recovery that is usually implemented by maintaining a log of update operations so that `redo' and `undo' actions can be performed when required. Isolation is guaranteed by the mechanism of concurrency control, which is implemented by using locks during the transaction process. A detailed overview of concurrency control and recovery techniques is available in [Ramamritham and Chrysanthis 1997]. Consistency is guaranteed by the integrity control mechanism usually provided by the TP system, though not complete in a strict sense.1 Flat transactions have proven to be very useful in traditional database applications where the execution time is relatively short, the number of concurrent transactions is relatively small and the database system only resides in one server. However, they lack the exibility to meet the requirements of the applications developed later, for example, multi-database operations that need a certain level of transparency for the interactions with each local database or a workow system that needs to support long-living transactions The save point concept 12

15 Distributed and nested transactions Nested Transactions Protokoªy Distributed commitment (2PC, 3PC) 9.4 Distributed Transactions Atomic Commitment Two-phase Commit Non-Blocking Commitment Protocols Optimizing Two-phase Commit Business Transaction Protocol free market (protocol) The Tentative Holding Protocol The Two Phase Commit Protocol The Optimistic Two Phase Commit Protocol Paxos Commit OLTP Mechanizmy wy»ej opisane s u»ywane przez wi kszo± komercyjnych systemów baz danych (niededykowanych) i zostaªy szczególnie zoptymalizowane w kierunku wykonywania operacji biznesowych typowych w lat 80-tych i 90-tych. Funkcjonalno± byªa do± prosta, np. zapisanie zamówienia w magazynie, b d¹ wpªaty w banku. Aplikacje tego typu (zwane OLTP) byªy chlebem powszednim w przedsi biorstwach w tamtych czasach. Jednak»e od kilku lat, wraz z rozwojem Internetu, mechanizmy te staj si niewystarczaj ce do nowych wymaga«biznesowych takich jak integracja aplikacji przedsi biorstwa(ang. EAI) oraz integracji przedsi biorstwo-przedsi biorstwo(ang. B2Bi). Nowe potrzeby wyró»niaªa jedna krytyczna cecha: aktywno±ci, które byªy przez nie automatyzowane trwaªy dªugo (od kilku sekund nawet do kilku miesi cy), poniewa» opieraj si na wspóªpracy wielu uczestników oraz cz sto wymagaj interakcji z czªowiekiem. Blokowanie danych na tak dªugi czas jest nieefektywne, gdy» mo»e opó¹ni inne wspóªbie»ne zadania na kilka dni b d¹ dªu»ej. Inn wa»n cech aplikacji OLTP jest to,»e transakcje oddziaªuj w ramach jednej spójnej jednostki kontroli (na pojedynczej bazie danych, pó¹niej rozproszone na kilka instancji, ale zarz dzanych przez jeden system zarz dzania). W przeciwie«stwie do starego modelu, nowoczesne aplikacje dla przedsi biorstw ªami te reguªy, np. jeden proces mo»e anga»owa magazyn, oddziaª logistyczny oraz ksi gowo±. W B2Bi proces cz sto wymaga uczestnictwa ró»nych rm, które mog by wspóªpracownikami jak i konkurencj. Tutaj blokowanie obiektów staje si niedopuszczalne a przewa»nie nieosi galne, gdy»»adne przedsi biorstwo nie pozwoli swojej konkurencji na zablokowanie wªasnych danych (daje to bardzo ªatw mo»liwo± wykonywania ataków odmowy usªugi(ang. Denial of Service)). LONG RUNNING TRANSACTIONS Chained transactions and sagas Sagas sagas [19] and nested sagas [20, 21] ATM LRUOW ConTract 13

16 Spheres of Isolation Spheres of Joint Compensation Open Process Management nested transactions [15, 16] multi-level transactions [53] ConTracts WIDE Conclusion on advanced transaction models 4 ACTA model 4.1 Orginal ACTA framework 4.2 Later developments ACTA [10] 1.3. Procesy i SOA Sieci przepªywu pracy 4 strony 5 Workow transactions 5.1 The transactional workow concept 5.2 WIDE model 5.3 X-transaction model WIDE (Workow on Intelligent Distributed database Environment) FlowMark Meteor2 Exotica FlowBack FlowMark MQSeries Workow METEOR OpenPM TSME CREW Standardy Usªugi sieciowe 3 strony 6 Web services transactions 6.1 BTP, WS-Tx and WS-CAF 6.2 Comparing the approaches ECA BPEL4WS Standardy Microsoft XLANG WS-BPEL WS-CDL WSCI 14

17 WSDL [15] (WSCL [14], WSCI [13], BPML [3], WSFL [10], XLANG [16], BPEL4WS [2]) BPML [2], IBM's WSFL [12], Microsoft's XLANG ([22], [16]) or the more recent BPEL4WS Kraty transakcji - co z tym??1 strona 7 Grid transactions 7.1 Ongoing work in Grid transactions 15

18

19 Rozdziaª 2 Specykacje formalne stron Formal specication of transaction semantics calculus dc t-calculus (biztalk pi? -calculus cjoin calculus StAC (BPBeans) ccsp Sagas calculi dynamic compensation calculus web SOCK (WSDL and BPEL) Event Calculus set consistency 17

20

21 Rozdziaª 3 System obªugi cash pooli - 5 stron 3.1. Cash pool Zarz dzanie pªynno±ci Do gªównych zada«osoby odpowiedzialnej za zarz dzanie nansami du»ego przedsi biorstwa lub holdingu (grupy przedsi biorstw powi zanych kapitaªowo) nale»y pozyskiwanie nowych ¹ródeª nansowania, d»enie do minimalizacji kosztów oraz maksymalizacja korzy±ci z posiadanej gotówki. Szczególnie cenione s oszcz dno±ci, które nie pogorsz jako±ci funkcjonowania przedsi biorstwa oraz produktów i usªug przez niego oferowanych. Wykorzystanie kapitaªu obcego w znacznym stopniu wpªywa na wzrost kosztów nansowych. Najbardziej popularnym (poza wªasnymi funduszami) ¹ródªem pozyskania ±rodków na nansowanie dziaªalno±ci operacyjnej ka»dego przedsi biorstwa w Polsce jest krótkoterminowy kredyt bankowy. Sªu»y on jako uzupeªnienie czasowego niedoboru ±rodków lecz skutkuje konieczno±ci ponoszenia kosztów zwi zanych z oprocentowaniem, które kredytobiorca musi zapªaci za korzystanie z pieni dzy banku. W wi kszych przedsi biorstwach, gdzie struktura organizacyjna bywa cz sto rozbudowana i skomplikowana, cz sto w skªad jednostki wchodz przedsi biorstwa korzystaj ce w ró»nym stopniu z nansowania obcego. Niektóre z nich posiadaj wolne ±rodki ulokowane na rachunkach depozytowych, inne bywaj zadªu»one. Ró»nica w oprocentowaniu lokat i kredytów jest znaczna i pokrywa koszty obsªugi oraz jest ¹ródªem wynagrodzenia banku. Banki podj ªy prób wykorzystania tej sytuacji i zdobycia wi kszej liczby klientów opracowuj c usªug umo»liwiaj c bardziej efektywne zarz dzanie pªynno±ci - cash pooling Zasada dziaªania Dziaªanie usªug cash poolingowych opiera si na grupowaniu rachunków przedsi biorstwa b d¹ grupy w celu lepszego wykorzystania nadwy»ek ±rodków pieni»nych. Wyró»niamy dwa podstawowe typy: cash pool wirtualny (zwany tak»e nierzeczywistym lub notional cash pool) - jest struktur, w której nie wyst puj zyczne transfery pieni»ne pomi dzy rachunkami uczestników, cash pool rzeczywisty (zwany tak»e realnym lub efektywnym) - ±rodki pieni»ne s zycznie przelewane pomi dzy rachunkami. Pierwszy rodzaj polega na kalkulowaniu odsetek na podstawie zbilansowanego salda zadªu»enia (sumy ±rodków na rachunkach), bez konieczno±ci dokonywania transferów pomi dzy 19

22 rachunkami. Odsetki s oparte na sumie sald dodatnich i ujemnych a nie na saldach poszczególnych rachunków. Stany ±rodków na poszczególnych rachunkach uczestnicz cych pozostaj bez zmian. Drugi typ przewiduje zyczny transfer ±rodków pieni»nych na rachunek gªówny grupy kapitaªowej ze ±rodków zgromadzonych na ró»nych kontach spóªek, a nast pnie rozdzielenie ich w zale»no±ci od zapotrzebowania rachunków danej spóªki. Dzi ki temu mo»liwa jest kompensacja niedoborów jednych podmiotów nadwy»kami innych. Taka transakcja ma charakter zwrotny, gdy» najcz ±ciej jest dokonywana pod koniec dnia, najwcze±niej po ostatniej sesji bankowej, na której dokonuje si przelewów bankowych, by w nast pnym dniu w porach rannych zwróci ±rodki na poszczególne rachunki spóªek. Wszelkie zobowi zania powstaªe w tych strukturach s dzielone pomi dzy uczestników struktury proporcjonalnie do ich wkªadu. Rysunek 3.1: Przykªad wykonania kompensacji ±rodków w ko«cu dnia na rachunkach struktury cash pool rzeczywisty Generalnie cash pooling stanowi ofert skierowan i konstruowan specjalnie wedªug potrzeb danego przedsi biorstwa lub grupy kapitaªowej, gdy» jest to sprawa indywidualna. Przewa»nie w ofercie banku istnieje kilka produktów (szablonów usªugi cash pool), które mog zosta odpowiednio skongurowane na potrzeby danego klienta (okre±lenie rachunków w strukturze, harmonogramy wykonania, generowanie raportów). Czasami jednak zdarza si i» w celu obsªu»enia nowego klienta potrzebne jest opracowanie nowego produktu, poniewa» jedynie struktura uwzgl dniaj ca specyk danej jednostki oraz dostosowana do polskich przepisów prawnych, pozwala na usprawnienie zarz dzania ±rodkami rmy. 20

23 Sytuacja prawna Gªówn przeszkod w powszechnym stosowaniu cash pooli w Polsce s nieuregulowania prawnie zwi zane z tego typu usªugami. Niebezpiecze«stwo interpretacyjne polega na zakwali- kowaniu przez organy podatkowe transferów w ramach cash poolingu jako typowej po»yczki, co skutkuje konieczno±ci zapªacenia 2-proc. podatku od czynno±ci cywilnoprawnych (PCC). Bank odpowiada za dokªadne dopasowanie do specyki danego klienta i musi zaoferowa usªug na zasadach, jakie dana grupa kapitaªowa wypracuje ze swoimi prawnikami oraz organami podatkowymi, aby wyeliminowa ewentualne rozbie»ne interpretacje. Dlatego te» konstrukcja cash pool dla konkretnego klienta jest skomplikowanym tworem prawno-podatkowym, a bank musi wykaza si du» elastyczno±ci. Sposób gromadzenia ±rodków w strukturze, okre- ±lenie udziaªu w kosztach funkcjonowania oraz podziaª zysków musz by ±ci±le dopasowane do konkretnych wymaga«formalnoprawnych Korzy±ci Przedsi biorstwa korzystaj ce z usªug cash pool zyskuj na: korzy±ci skali - ª czenie sald kredytowych i debetowych pozwala wynegocjowa znacznie lepsze oprocentowanie ni» w sytuacji, w której uczestnicy negocjuj z bankiem indywidualnie, obni»eniu kosztów prowizji - poniewa» wzajemne nansowanie zachodzi pomi dzy podmiotami powi zanymi to grupa nie ponosi kosztów prowizji bankowych od po»yczek udzielonych poszczególnym uczestnikom, bardziej efektywnym zarz dzaniu pªynno±ci, zachowaniu autonomii nansowej podmiotów podporz dkowanych. Powy»sze korzy±ci dostrzegli duzi klienci, wi c bank, chc c pozosta dla klienta atrakcyjnym partnerem, nie mo»e sobie pozwoli na brak usªug cash pool w swojej ofercie. Aby cash pool byª w peªni efektywny, wszystkie rachunki operacyjne grupy kapitaªowej powinny by prowadzone w jednym banku. Jest to dla banku bardzo dobra sytuacja, gdy» dzi ki temu ma mo»liwo± przej obsªug bankow caªej grupy. 21

24 3.2. Platforma Motywacja Cash pool mogªby by realizowany we wªasnym zakresie przez grup kapitaªow. Taki mechanizm ma istotne wady. Mo»e absorbowa znaczn ilo± pracowników, którzy nawet przy najlepszych zamiarach nie b d wykonywali usªugi efektywnie ze wzgl du na opó¹nienia w operacjach mi dzy bankami oraz fakt,»e przed zamkni ciem dnia klient mo»e nie zna swojego salda zamkni cia. Lepszym rozwi zaniem dla grup kapitaªowych jest ±wiadczenie przez bank usªug zarz - dzania pªynno±ci. Mo»e to by wykonane operuj c na saldach zamkni cia ka»dego dnia. Aby caªy proces zostaª zautomatyzowany, a raporty dziaªania struktury na bie» co dost pne dla klienta, banki oferuj ce swoim klientom rozwi zania pªynno±ciowe zaopatruj si w odpowiednie aplikacje. Istniej dwie mo»liwo±ci: obsªuga w ramach systemu centralnego lub w odr bnym dedykowanym do tego celu systemie. Wykorzystanie systemu centralnego ma wiele zalet. Przede wszystkim: taki system w ka»dym banku funkcjonuje i je±li ma wbudowan obsªug usªug typu cash pool to wdra»anie usªug mo»e by szybkie. Rozwi zanie to nie jest jednak perspektywiczne, gdy» zwykle udost pnia jedynie najprostsze warianty usªug lub nieodpowiednie do polskich realiów prawnych. Dostosowanie lub tworzenie nowych usªug dedykowanych w systemie centralnym jest dªugotrwaªe i kosztowne. Dodatkowo takie zmiany mocno ingeruj w podstawowe funkcje systemu, wi c zmiany b d za sob poci ga testy caªego systemu centralnego. Jest to proces dªugotrwaªy i w dªu»szej perspektywie zbyt m cz cy i ograniczaj cy. System zewn trzny natomiast cechuje si wysok elastyczno±ci w dostosowywaniu si do wymaga«indywidualnych klientów. Dostosowanie usªugi b dzie o wiele ªatwiejsze, czyli ta«sze dla banku, a czas wykonania i udost pnienia klientowi krótszy. System b dzie musiaª integrowa si z systemem centralnym, ale wykorzystuj c standardowe interfejsy, takie jak ksi gowanie transakcji czy pobieranie salda, uda si to z ªatwo±ci. Dodatkowo system dedykowany do obsªugi cash pool b dzie rozumiaª logik usªug. Operatorzy b d mieli ªatwiejszy dost p do analizowania wykonania poszczególnych struktur poprzez prezentacj wyników dzia- ªania, takich jak naliczone odsetki, salda przed i po wykonaniu usªugi oraz rozliczenia mi dzy uczestnikami Wymagania System obsªuguj cy usªugi cash pool musi zapewnia szeroki wachlarz produktów. Sam cash pool wydaje si by usªug, któr ªatwo jest zautomatyzowa. Niestety z powodu indywidualnego dopasowania do klienta przewidzenie wszystkich wariantów jest niemo»liwe. Z tego powodu znacznie wa»niejsza od ilo±ci gotowych usªug jest mo»liwo± uszycia struktury na miar dla konkretnego klienta. Dlatego system powinien charakteryzowa si du» elastyczno- ±ci w zakresie konstruowania najbardziej skomplikowanych usªug, dzi ki czemu bank ªatwo i szybko b dzie mógª reagowa na zmieniaj ce si trendy rynkowe i skutecznie rywalizowa z konkurencj. Kolejnym wa»nym wymaganiem jest ªatwo± obsªugi. Poniewa» jest to system dedykowany, powinien dawa du»o lepsze mo»liwo±ci prezentowania wyników dziaªania konkretnych cash pooli. Nie mniej wa»ne jest te» zautomatyzowanie procesów uruchamiania usªug. System nie powinien wymaga ingerencji operatora kiedy usªug nale»y uruchomi kilka razy dziennie. Sama automatyzacja procesów nie wystarczy. W sytuacjach kiedy zªo»one operacje mog wykonywa si pod nieobecno± operatorów wszelkie automatyczne procesy powinny zawiera wyranowane mechanizmy obsªugi sytuacji niepo» danych. 22

25 Kompleksowy system udost pniaj cy zªo»on funkcjonalno± powinien posiada modularn budow, aby mógª by z ªatwo±ci wdro»ony w dowolnym banku. Moduªy dodatkowe powinny by w peªni odseparowane z mo»liwo±ci niezale»nego doª czania do systemu. Pozwala to na oszcz dno±ci banku w przypadku ch ci oferowania prostszych usªug, b d¹ zast - pienie moduªów przez istniej ce wewn trzne systemy banku, np. system naliczania opªat. Integracja z systemem centralnym pomimo,»e wykorzystywa b dzie standardowe interfejsy banku mo»e wymaga szczególnej uwagi podczas wdro»enia. Aby wdro»enie w dowolnym banku odbywaªo si bez wi kszych komplikacji, nale»y przygotowa si na konieczno± przygotowania kilku mechanizmów wykonywania tej samej operacji, np. ksi gowanie transakcji synchroniczne/asynchroniczne, generowanie raportów do pliku/kolejki komunikatów. Z tego powodu automatyczne procesy biznesowe powinny by kongurowalne zgodnie z wymaganiami konkretnego banku Koncepcja podzial na moduly, konguracja... diagramy... 23

26

27 Rozdziaª 4 Procesy w systemie - 5 stron 4.1. Sposób dziaªania przetwarzanie uslug, dlaczego procesy, co sie wtedy dzieje Procesy w kazdym z nich: kiedy uruchamiany, jak to jest z czasem, jakie operacje sa w nim wykonywane (z jakich krokow moze sie skladac) diagramy Proces ko«ca dnia Proces pocz tku dnia Proces dzienny 4.3. Kroki procesów poszczegolne kroki z ktorych mozna budowac procesy + ich warianty 4.4. Obsªuga sytuacji nieprawidªowych jakie sytuacje nieprawidªowe przewidujemy w systemie i jak chcemy na nie reagowa w ró¹nych krokach procesu 25

28

29 Rozdziaª 5 Analiza narz dzi - 10 stron 27

30 5.1. Wyj tki Podczas, gdy spoªeczno± bazodanowa u»ywaªa transakcji ACID oraz ich rozszerze«jako podstaw w radzeniu sobie z bª dami, zupeªnie inne mechanizmy powstawaªy w j zykach programowania. Nie byªo mowy o wyr czeniu programisty przy reagowaniu na bª d, gdy kod dziaªa niepoprawnie, dane nie speªniaj oczekiwa«, b d¹ system zgªasza informacj o próbie otwarcia nieistniej cego pliku. Zamiast tego skupiono si na wsparciu programisty w oddzieleniu kodu obsªugi sytuacji nienormalnych od cz sto prostszego prawidªowego wykonania Idea Obsªuga wyj tków (Exception handling) jest programistyczn konstrukcj oraz mechanizmem sprz towym zaprojektowanym do wyªapywania wyj tków - specjalnych warunków zmieniaj cych przepªyw w wykonaniu programu. Powstaªa w latach 70-tych w j zykach PL/I oraz CLU. Wyj tki s podnoszone(ang. raised) albo rzucane(ang. thrown) przez sprz t lub sam program, aby zasygnalizowa,»e co± poszªo nie tak jak powinno, np. wyst piª bª d dzielenia przez zero. W systemach bez obsªugi wyj tków procedury musiaªby by zwraca specjalny kod bª du. Jednak»e mo»e by to skomplikowane, gdy w procedurze wywoªuj cej musimy za ka»dym razem sprawdza czy warto± zwrócona nie oznacza bª du. Ogólna zasada dziaªania wygl da nast puj co: 1. w momencie pojawienia si wyj tku aktualny stan wykonania jest zapisywany, 2. stos wywoªa«funkcji jest analizowany wstecz w celu odnalezienia funkcji obsªugi, 3. dalsz prac kontynuuje procedura obsªugi wyj tku(ang. exception handler). W zale»no±ci od sytuacji i decyzji programisty procedura ta mo»e pó¹niej kontynuowa zawieszon prac. Oznacz to,»e je±li funkcja f zawieraªa obsªug H bª du E i wywoªaªa funkcj g, która nast pnie wywoªaªa funkcj h, w której wyst piª wyj tek E, to funkcje h i g zostaj przerwane, a wykonanie przejmuje procedura obsªugi H w funkcji f J zyki programowania J zyki programowania ró»ni si znacz co pod wzgl dem wsparcia obsªugi wyj tków. W niektórych j zykach istniej funkcje, które nie mog by wykonane na bª dnych danych lub takie, których wynik nie ró»ni si od tego w przypadku bª du, np. w j zyku C funkcja atoi (konwersja z ASCII do liczby) mo»e zwraca 0 (zero) dla ka»dego wyniku, który nie mo»e zosta przetworzony na poprawn warto±. W takich j zykach programista musi albo wykona sprawdzenie kodu bª du (np. za pomoc pewnej globalnej zmiennej, jak w C errno), albo wykona walidacj warto±ci wej±ciowej. Cz sto± takich r cznych walidacji, b d¹ konieczno± sprawdzania kodów bª du jest odwrotnie proporcjonalna do jako±ci wsparcia obsªugi wyj tków w danym j zyku. Mechanizm wyj tków posiadaj m.in.: SML, Java, JavaScript, Ocaml, Smalltalk, Ruby, Python, C++, C#, Tcl, PHP. Poza niewielkimi ró»nicami syntaktycznymi istnieje tylko kilka stylów obsªugi wyj tków. Najbardziej popularne jest inicjowanie wyj tku u»ywaj c specjalnej instrukcji (throw, raise) z podaniem obiektu wyj tku, b d¹ specjalnego typu wyliczeniowego. Zakres kodu, który chcemy kontrolowa rozpoczyna si od specjalnego znacznika (zazwyczaj try albo inna konstrukcja rozpoczynaj ca blok jak begin) a ko«czy przy pierwszej klauzuli 28

31 obsªugi wyj tku (catch, except lub rescue) i je±li jego wykonanie zostanie przerwane wyj tkiem to uruchamia si odpowiednia procedura obsªuguj ca. Mo»na zdeniowa kolejno kilka funkcji obsªugi, a ka»da z nich mo»e okre±la jaki rodzaj wyj tku obsªuguje. Niektóre j zyki wprowadzaj klauzule else oznaczaj c kod, który ma si wykona je±li wyj tek nie nast piª. Bardziej popularna jest natomiast konstrukcja nally(b d¹ ensure), który oznacza fragment kodu wykonywany zawsze, bez wzgl du na to czy wyst piª wyj tek. Jest ona stosowana przewa»nie do zwolnienia zasobów, które zostaªy uzyskane w kodzie kontrolowanym. C++ Java Python try { i f ( b == 0) throw 1 ; x = a / b ; } catch ( i n t e ) { cout << "b=0"; } try { x = a / b ; } catch ( Exception e ) { System. out. p r i n t l n (" b =0"); } try : x = a / b except Z e r o D i v i s i o n E r r o r : p r i n t "b=0" Tablica 5.1: Przykªad obsªugi wyj tku dzielenia przez zero U»yteczno± Mechanizm obsªugi wyj tków jest bardzo przydatny i u»ywany poprawnie mo»e znacznie uªatwi programowanie oraz zwi kszy niezawodno± aplikacji. Niestety ta konstrukcja mo»e by nadu»ywana prowadz c do nieczytelnego kodu i problemów w utrzymaniu, a ¹le stosowana mo»e powodowa trudne w wykryciu bª dy. Poni»ej opisz plusy i minusy korzystania z tego mechanizmu. Problemy 1. Sterowanie - Obsªuga wyj tków mo»e spowodowa nieoczekiwany przepªyw sterowania. Program mo»e wykonywa si poprawnie, po czym nagle przeskoczy kilka poziomów w gór po stosie wykonania i b dzie kontynuowaª dziaªanie gdzie indziej. 2. Bezmy±lno± - Obsªuga wyj tków cz sto jest u»ywana przez lenistwo programistów w radzeniu sobie z nimi. Mo»e si zdarzy,»e kiedy nagle co± przestaje dziaªa, zamiast zbada co jest problemem kod zostanie po prostu opakowany w konstrukcj obsªugi, aby zaªata bª d. 3. Zasoby - Obsªu»enie wyj tku w trakcie wykonania bloku kodu przerywa go. Czasami obsªuga wyj tku wymaga zwolnienia zasobów pobranych w kontrolowanym fragmencie kodu, aby nie powodowa wycieków pami ci, ale mo»e by trudno okre±li, które operacje si wykonaªy. Aby mechanizm wyj tków sam nie powodowaª bª dów, funkcje powinny by odpowiednio zaprojektowane, a nie tylko opakowane w obsªug wyj tków. 4. Czas reakcji - Czasami mo»e si zdarzy,»e program wykona funkcj, która wykona du»o pracy, zanim zostanie przerwana przez wyj tek. Cz sto w tych przypadkach mo»na zabezpieczy si prost walidacj danych, przed wykonaniem funkcji, która z tymi danymi na pewno si nie wykona. 29

32 Korzy±ci 1. Niezawodno± - W niektórych aplikacjach przerwanie poprzez bª d jest niedopuszczalne. Niespójno± danych albo wycieki pami ci mog by akceptowalny w porównaniu z zatrzymaniem aplikacji. Cz sto przed dostarczeniem wa»nego programu warto zabezpieczy si w globaln obsªug wyj tków, która ukryje wszelkie nieznane bª dy i pozwoli aplikacji dalej pracowa kiedy pojawi si bª d. Procedura ta musi zapisywa informacje o wyst pieniu bª du i mo»e ostrzec u»ytkownika,»e co± poszªo nie tak i dobrym pomysªem jest uruchomienie aplikacji od nowa. Funkcja ta powinna by jednak wyª czona podczas implementacji i testowania aplikacji, w przeciwnym przypadku b dzie ukrywaªa bª dy przed lud¹mi, którzy powinni je naprawi. 2. Osobliwe zdarzenia - Co mo»e si zdarzy przy zapisie pliku na dysk? Zªa nazwa pliku, nie znaleziono katalogu, plik jest tylko do odczytu, katalog jest tylko do odczytu, brak miejsca na dysku, brak zasobów systemu, bª d wej±cia/wyj±cia dysku, dysk nie jest w stacji, dysk przewiercony wiertark... Sprawdzanie ka»dego mo»liwego przypadku bª du ka»dej operacji na pliku byªoby niedorzeczne. Wªa±nie do tego zostaªy zaprojektowane wyj tki. Najpierw nale»y sprawdzi oczywiste rzeczy, jak pusta nazwa pliku, a nast pnie zapisa go wyªapuj c bª dy. Obsªuga wyj tków pozwala utrzyma kod prostym i ci gle radzi sobie stosunkowo dobrze przy obsªudze nieprzewidzianych zdarze«. 3. Ryzykowne wywoªania - Konstrukcje obsªugi wyj tków s dobrym narz dziem do uniezale»nienia aplikacji od bª dów zewn trznych bibliotek. Techniki te s szczególnie polecane je±li biblioteki te mog pó¹niej zosta zmienione, b d¹ istniej w ró»nych wersjach na komputerach u»ytkowników. 4. Szybkie poprawki - Czasami musimy napisa prosty kawaªek kodu, który wykonamy by mo»e tylko raz. Niestety dane na których on operuje zawieraj nieznaczne bª dy przez, które caªy program przestaje dziaªa. Nie chcemy obsªugiwa tych danych wi c operacje na nich opakowujemy w obsªug wyj tków i mo»emy wykona program. W tej i podobnych sytuacjach obsªuga wyj tków sprawdza si bardzo dobrze, gdy» pozwala na szybkie wykonanie prostej operacji. Niestety wielu programistów przenosi tego typu podej±cie na aplikacje bardziej zªo»one. Wnioski Obsªuga wyj tków jest bardzo wa»nym narz dziem programistycznym. Mo»e by, i niestety cz sto jest, u»ywana nieprawidªowo. GOTO byªo kiedy± równie» cenn konstrukcj, ale byª nadu»ywana, wi c aktualnie nie poleca si jej u»ywania, z nowoczesne j zyki programowania jej nie posiadaj. Je±li programi±ci b d nadu»ywa obsªugi wyj tków w ten sam sposób, mechanizm ten mo»e zyska zª sªaw i równie» zosta usuni tym. Dobrze jest my- ±le o obsªudze wyj tków jako o fotelu wyrzucanym w my±liwcach: u»ywa w awaryjnych sytuacjach, nie przy typowych problemach. Mechanizm wyj tków zostaª opracowany w czasach aplikacji na pojedyncze stacje robocze, w czasie kiedy Internet nie byª tak rozwini ty jak aktualnie. Przy projektowaniu wspóªczesnych aplikacji pojawiaj si nowe wyzwania w kwestii strategii obsªugi wyj tków. Ogromne znaczenie w obsªudze wyj tków ma rozpoznanie miejsc, gdzie nie jest mo»liwe naprawienie bª du przy pomocy procedury obsªugi i wymagana jest ludzka interwencja, a nast pnie stworzenie dodatkowych mechanizmów do wspierania takich awarii. 30

33 5.2. Zr by middleware platforms BizTalk 9.6 Transactional Middleware Transaction Management in JEE Web Services Transactions Advances in Transactional Middleware GoTM, a Framework for Transaction Services Architecture of GoTM Implementation of GoTM Using GoTM Technologie CORBA Activity Service Framework EJB Bourgogne Transactions X2TS PJama 31

34

35 Rozdziaª 6 Propozycja rozwi zania stron 33

36

37 Rozdziaª 7 Podsumowanie 35

38

39 Bibliograa W zestawieniu podane s publikacje w caªo±ci lub cze±ci wykorzystane przez autora w trakcie przygotowania pracy, jak równie» materiaªy, przydatne w celu szerszego poznania tematu. [Bern87] [Eswa76] [Except] [GMBL81] [Gray78] [Gray81] [Gray93] [Haer83] [Lamp79] [SysR-Web] [Weik02] P. A. Bernstein, V. Hadzilacos, N. Goodman, Concurrency Control and Recovery in Database Systems, Addison-Wesley, K. P. Eswaran, J. N. Gray, R. A. Lorie, I. L. Traiger, The notions of consistency and predicate locks in a database system, Communications of the ACM, 1976;19(11): Exception Handling. J. Gray, P. McJones, M. Blasgen, B. Lindsay, R. Lorie, T. Price, F. Putzolu, I. Traiger, The recovery manager of the System-R database manager, ACM Computing Surveys, 1981;13(2): J. Gray, Notes on data base operating systems, Operating Systems: An Advanced Course, London, UK. Springer-Verlag, 1978: J. Gray, The transaction concepts: Virtues and limitations, Proceedings of the 31st International Conference on Very Large Data Bases (VLDB'05), France, 1981: J. Gray, A. Reuter, Transaction Processing: Concepts and Techniques, Morgan Kaufmann, T. Haerder, A. Reuter, Principles of Transaction-Oriented Database Recovery, ACM Computing Surveys, 1983;15(4): B. W. Lampson, H. E. Sturgis, Crash recovery in a distributed data storage system, Technical report, Xerox PARC (unpublished), Cz - ±ciowo odtworzone w Distributed Systems Architecture and Implementation, red. Lampson, Paul, Siegert, Lecture Notes in Computer Science, Springer, 1981;105:246265, System R website. G. Weikum, G. Vossen, Transactional Information Systems, Morgan Kaufmann,

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Lekcja 9 - LICZBY LOSOWE, ZMIENNE Lekcja 9 - LICZBY LOSOWE, ZMIENNE I STAŠE 1 Liczby losowe Czasami spotkamy si z tak sytuacj,»e b dziemy potrzebowa by program za nas wylosowaª jak ± liczb. U»yjemy do tego polecenia: - liczba losowa Sprawd¹my

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15

Bazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Przechowywanie danych Wykorzystanie systemu plików, dostępu do plików za pośrednictwem systemu operacyjnego

Bardziej szczegółowo

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Bash i algorytmy. Elwira Wachowicz. 20 lutego Bash i algorytmy Elwira Wachowicz elwira@ifd.uni.wroc.pl 20 lutego 2012 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Bash i algorytmy 20 lutego 2012 1 / 16 Inne przydatne polecenia Polecenie Dziaªanie Przykªad

Bardziej szczegółowo

Zastosowania matematyki

Zastosowania matematyki Zastosowania matematyki Monika Bartkiewicz 1 / 126 ...czy«cie dobrze i po»yczajcie niczego si nie spodziewaj c(šk. 6,34-35) Zagadnienie pobierania procentu jest tak stare jak gospodarka pieni»na. Procent

Bardziej szczegółowo

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych? Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych? 1 Podstawowe pojęcia: 2 3 4 5 Dana (ang.data) najmniejsza, elementarna jednostka informacji o obiekcie będąca przedmiotem przetwarzania

Bardziej szczegółowo

Obsªuga bª dów w procesach automatycznej konsolidacji rachunków bankowych.

Obsªuga bª dów w procesach automatycznej konsolidacji rachunków bankowych. Uniwersytet Warszawski Wydziaª Matematyki, Informatyki i Mechaniki Sebastian Tomaszewski Nr albumu: 219712 Obsªuga bª dów w procesach automatycznej konsolidacji rachunków bankowych. Praca magisterska na

Bardziej szczegółowo

przewidywania zapotrzebowania na moc elektryczn

przewidywania zapotrzebowania na moc elektryczn do Wykorzystanie do na moc elektryczn Instytut Techniki Cieplnej Politechnika Warszawska Slide 1 of 20 do Coraz bardziej popularne staj si zagadnienia zwi zane z prac ¹ródªa energii elektrycznej (i cieplnej)

Bardziej szczegółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Programowanie wspóªbie»ne wiczenia 5 monitory cz. 1 Zadanie 1: Stolik dwuosobowy raz jeszcze W systemie dziaªa N par procesów. Procesy z pary s nierozró»nialne. Ka»dy proces cyklicznie wykonuje wªasnesprawy,

Bardziej szczegółowo

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu ➏ Filozoa z elementami logiki Na podstawie wykªadów dra Mariusza Urba«skiego Sylogistyka Przypomnij sobie: stosunki mi dzy zakresami nazw KLASYCZNE ZDANIA KATEGORYCZNE Trzy znaczenia sªowa jest trzy rodzaje

Bardziej szczegółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Zadanie 1: Bar Programowanie wspóªbie»ne wiczenia 6 monitory cz. 2 Napisz monitor Bar synchronizuj cy prac barmana obsªuguj cego klientów przy kolistym barze z N stoªkami. Ka»dy klient realizuje nast

Bardziej szczegółowo

Obsªuga bª dów w procesach automatycznej konsolidacji rachunków bankowych.

Obsªuga bª dów w procesach automatycznej konsolidacji rachunków bankowych. Uniwersytet Warszawski Wydziaª Matematyki, Informatyki i Mechaniki Sebastian Tomaszewski Nr albumu: 219712 Obsªuga bª dów w procesach automatycznej konsolidacji rachunków bankowych. Praca magisterska na

Bardziej szczegółowo

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska MiASI Modelowanie systemów informatycznych Piotr Fulma«ski Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska 18 stycznia 2010 Spis tre±ci 1 Analiza systemu informatycznego Poziomy analizy 2

Bardziej szczegółowo

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015 Android Podstawy tworzenia aplikacji Piotr Fulma«ski Instytut Nauk Ekonomicznych i Informatyki, Pa«stwowa Wy»sza Szkoªa Zawodowa w Pªocku, Polska March 4, 2015 Table of contents Framework Jednym z najwarto±ciowszych

Bardziej szczegółowo

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition) Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition) Robert Respondowski Click here if your download doesn"t start automatically Wojewodztwo Koszalinskie:

Bardziej szczegółowo

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz Lekcja 8 - ANIMACJA 1 Polecenia Za pomoc Baltiego mo»emy tworzy animacj, tzn. sprawia by obraz na ekranie wygl daª jakby si poruszaª. Do animowania przedmiotów i tworzenia animacji posªu» nam polecenia

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska MiASI Modelowanie analityczne Piotr Fulma«ski Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska 18 stycznia 2010 Spis tre±ci 1 Czym jest modelowanie analityczne? 2 Podstawowe kategorie poj ciowe

Bardziej szczegółowo

Regulamin Usªugi VPS

Regulamin Usªugi VPS Regulamin Usªugi VPS 1 (Poj cia) Poj cia u»ywane w niniejszym Regulaminie maj znaczenia jak okre±lone w Ÿ1 Regulaminu Ogólnego Usªug Auth.pl Sp. z o.o. oraz dodatkowo jak ni»ej: Wirtualny Serwer Prywatny

Bardziej szczegółowo

Zakopane, plan miasta: Skala ok. 1: = City map (Polish Edition)

Zakopane, plan miasta: Skala ok. 1: = City map (Polish Edition) Zakopane, plan miasta: Skala ok. 1:15 000 = City map (Polish Edition) Click here if your download doesn"t start automatically Zakopane, plan miasta: Skala ok. 1:15 000 = City map (Polish Edition) Zakopane,

Bardziej szczegółowo

Podstawy Informatyki i Technologii Informacyjnej

Podstawy Informatyki i Technologii Informacyjnej Automatyka i Robotyka, Rok I Wprowadzenie do systemów operacyjnych PWSZ Gªogów, 2009 Denicja System operacyjny (ang. OS, Operating System) oprogramowanie zarz dzaj ce sprz tem komputerowym, tworz ce ±rodowisko

Bardziej szczegółowo

Lab. 02: Algorytm Schrage

Lab. 02: Algorytm Schrage Lab. 02: Algorytm Schrage Andrzej Gnatowski 5 kwietnia 2015 1 Opis zadania Celem zadania laboratoryjnego jest zapoznanie si z jednym z przybli»onych algorytmów sªu» cych do szukania rozwi za«znanego z

Bardziej szczegółowo

W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców

W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców oferujących dostępy do tytułów elektronicznych, zarówno bibliotekarze jak i użytkownicy coraz większą ilość

Bardziej szczegółowo

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz. 16 lutego Podstawowe funkcje. 2.1 Windows

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz. 16 lutego Podstawowe funkcje. 2.1 Windows SVN - wprowadzenie Adam Krechowicz 16 lutego 2013 1 Wprowadzenie do SVN SVN SubVersion jest systemem kontroli wersji pozwalaj cym wielu u»ytkownikom na swobodne wspóªdzielenie tych samych plików. Pozwala

Bardziej szczegółowo

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, 2012. Dawid Rasaªa Metody numeryczne 1 / 9

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, 2012. Dawid Rasaªa Metody numeryczne 1 / 9 Metody numeryczne Wst p do metod numerycznych Dawid Rasaªa January 9, 2012 Dawid Rasaªa Metody numeryczne 1 / 9 Metody numeryczne Czym s metody numeryczne? Istota metod numerycznych Metody numeryczne s

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

Microsoft Management Console

Microsoft Management Console Microsoft Management Console Konsola zarządzania jest narzędziem pozwalającym w prosty sposób konfigurować i kontrolować pracę praktycznie wszystkich mechanizmów i usług dostępnych w sieci Microsoft. Co

Bardziej szczegółowo

Niniejszy dokument obejmuje: 1. Szablon Umowy zintegrowanej o rachunek ilokata, 2. Szablon Umowy zintegrowanej o rachunek ilokata oraz o rachunek

Niniejszy dokument obejmuje: 1. Szablon Umowy zintegrowanej o rachunek ilokata, 2. Szablon Umowy zintegrowanej o rachunek ilokata oraz o rachunek Niniejszy dokument obejmuje: 1. Szablon Umowy zintegrowanej o rachunek ilokata, 2. Szablon Umowy zintegrowanej o rachunek ilokata oraz o rachunek oszczędnościowo-rozliczeniowy. Umowa zintegrowana o rachunek

Bardziej szczegółowo

Lekcja 9 Liczby losowe, zmienne, staªe

Lekcja 9 Liczby losowe, zmienne, staªe Lekcja 9 Liczby losowe, zmienne, staªe Akademia im. Jana Dªugosza w Cz stochowie Liczby losowe Czasami potrzebujemy by program za nas wylosowaª liczb. U»yjemy do tego polecenia liczba losowa: Liczby losowe

Bardziej szczegółowo

Bezpieczeństwo bankowości mobilnej

Bezpieczeństwo bankowości mobilnej Core Banking International Bezpieczeństwo bankowości mobilnej - nowatorskie rozwiązania z Polski i ze Świata Agenda 1 Mobile banking o jakiej skali mówimy 2 Bezpieczne aplikacje? 3 Nadchodzi boom mobile

Bardziej szczegółowo

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15 ANALIZA NUMERYCZNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Metoda Eulera 3 1.1 zagadnienia brzegowe....................... 3 1.2 Zastosowanie ró»niczki...................... 4 1.3 Output do pliku

Bardziej szczegółowo

Obsªuga bª dów w procesach automatycznej konsolidacji rachunków bankowych.

Obsªuga bª dów w procesach automatycznej konsolidacji rachunków bankowych. Uniwersytet Warszawski Wydziaª Matematyki, Informatyki i Mechaniki Sebastian Tomaszewski Nr albumu: 219712 Obsªuga bª dów w procesach automatycznej konsolidacji rachunków bankowych. Praca magisterska na

Bardziej szczegółowo

Tychy, plan miasta: Skala 1: (Polish Edition)

Tychy, plan miasta: Skala 1: (Polish Edition) Tychy, plan miasta: Skala 1:20 000 (Polish Edition) Poland) Przedsiebiorstwo Geodezyjno-Kartograficzne (Katowice Click here if your download doesn"t start automatically Tychy, plan miasta: Skala 1:20 000

Bardziej szczegółowo

Bazy danych, 4. wiczenia

Bazy danych, 4. wiczenia Bazy danych, 4. wiczenia 2007-10-23 1 Plan zaj PL/SQL, cz ± II: tabele kursory sªu» ce do zmiany danych, procedury, funkcje, pakiety, wyzwalacze. 2 Tabele Deklaracja TYPE t_tab IS TABLE OF VARCHAR(20)

Bardziej szczegółowo

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania). Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania). W momencie gdy jesteś studentem lub świeżym absolwentem to znajdujesz się w dobrym momencie, aby rozpocząć planowanie swojej ścieżki

Bardziej szczegółowo

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach. Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach. 1 PROJEKTY KOSZTOWE 2 PROJEKTY PRZYCHODOWE 3 PODZIAŁ PROJEKTÓW ZE WZGLĘDU

Bardziej szczegółowo

YapS Plan testów. Šukasz Bieniasz-Krzywiec Dariusz Leniowski Jakub Š cki 29 maja 2007

YapS Plan testów. Šukasz Bieniasz-Krzywiec Dariusz Leniowski Jakub Š cki 29 maja 2007 YapS Plan testów Šukasz Bieniasz-Krzywiec Dariusz Leniowski Jakub Š cki 29 maja 2007 1 Spis tre±ci 1 Wprowadzenie 3 1.1................................. 3 1.2 Zakres............................... 3 2

Bardziej szczegółowo

Wdro enie SAP Treasury and Risk Management procesy na poziomie grupy i jednostki lokalnej na przyk adzie Coca-Cola Hellenic

Wdro enie SAP Treasury and Risk Management procesy na poziomie grupy i jednostki lokalnej na przyk adzie Coca-Cola Hellenic Wdro enie SAP Treasury and Risk Management procesy na poziomie grupy i jednostki lokalnej na przyk adzie Coca-Cola Hellenic Zró nicowany i zrównowa ony zasi g geograficzny Ludno : 78 mio Ludno : 401 mio

Bardziej szczegółowo

Sprawozdanie nr 1 Projekt Podstawy In»ynierii Oprogramowania, Wydziaª Elektryczny

Sprawozdanie nr 1 Projekt Podstawy In»ynierii Oprogramowania, Wydziaª Elektryczny Sprawozdanie nr 1 Projekt Podstawy In»ynierii Oprogramowania, Wydziaª Elektryczny Artur Skonecki Mikoªaj Kowalski Marcin Wartecz-Wartecki Prowadz cy: mgr in». Adam Srebro Wygenerowano: 23 marca 2010 Spis

Bardziej szczegółowo

SubVersion. Piotr Mikulski. SubVersion. P. Mikulski. Co to jest subversion? Zalety SubVersion. Wady SubVersion. Inne różnice SubVersion i CVS

SubVersion. Piotr Mikulski. SubVersion. P. Mikulski. Co to jest subversion? Zalety SubVersion. Wady SubVersion. Inne różnice SubVersion i CVS Piotr Mikulski 2006 Subversion is a free/open-source version control system. That is, Subversion manages files and directories over time. A tree of files is placed into a central repository. The repository

Bardziej szczegółowo

Propozycja integracji elementów ±wiata gry przy u»yciu drzew zachowa«

Propozycja integracji elementów ±wiata gry przy u»yciu drzew zachowa« Praca cz ±ciowo sponsorowana przez Ministerstwo Nauki i Szkolnictwa Wy»szego, grant nr N N519 172337, Integracyjna metoda wytwarzania aplikacji rozproszonych o wysokich wymaganiach wiarygodno±ciowych.

Bardziej szczegółowo

INFORMATOR TECHNICZNY WONDERWARE

INFORMATOR TECHNICZNY WONDERWARE Informator techniczny nr 95 04-06-2007 INFORMATOR TECHNICZNY WONDERWARE Synchronizacja czasu systemowego na zdalnych komputerach względem czasu systemowego na komputerze z serwerem Wonderware Historian

Bardziej szczegółowo

POLITECHNIKA WROCŠAWSKA WYDZIAŠ ELEKTRONIKI PRACA DYPLOMOWA MAGISTERSKA

POLITECHNIKA WROCŠAWSKA WYDZIAŠ ELEKTRONIKI PRACA DYPLOMOWA MAGISTERSKA POLITECHNIKA WROCŠAWSKA WYDZIAŠ ELEKTRONIKI Kierunek: Specjalno± : Automatyka i Robotyka (AIR) Robotyka (ARR) PRACA DYPLOMOWA MAGISTERSKA Podatny manipulator planarny - budowa i sterowanie Vulnerable planar

Bardziej szczegółowo

VinCent Office. Moduł Drukarki Fiskalnej

VinCent Office. Moduł Drukarki Fiskalnej VinCent Office Moduł Drukarki Fiskalnej Wystawienie paragonu. Dla paragonów definiujemy nowy dokument sprzedaży. Ustawiamy dla niego parametry jak podano na poniższym rysunku. W opcjach mamy możliwość

Bardziej szczegółowo

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017 i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski Uniwersytet Šódzki, Wydziaª Matematyki i Informatyki UŠ piotr@fulmanski.pl http://fulmanski.pl/zajecia/prezentacje/festiwalnauki2017/festiwal_wmii_2017_

Bardziej szczegółowo

Stargard Szczecinski i okolice (Polish Edition)

Stargard Szczecinski i okolice (Polish Edition) Stargard Szczecinski i okolice (Polish Edition) Janusz Leszek Jurkiewicz Click here if your download doesn"t start automatically Stargard Szczecinski i okolice (Polish Edition) Janusz Leszek Jurkiewicz

Bardziej szczegółowo

Programowanie i struktury danych

Programowanie i struktury danych Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w

Bardziej szczegółowo

InsERT GT Własne COM 1.0

InsERT GT Własne COM 1.0 InsERT GT Własne COM 1.0 Autor: Jarosław Kolasa, InsERT Wstęp... 2 Dołączanie zestawień własnych do systemu InsERT GT... 2 Sposób współpracy rozszerzeń z systemem InsERT GT... 2 Rozszerzenia standardowe

Bardziej szczegółowo

Projekt konceptualny z Baz Danych "Centralny system zarz dzania salami na AGH"

Projekt konceptualny z Baz Danych Centralny system zarz dzania salami na AGH Projekt konceptualny z Baz Danych "Centralny system zarz dzania salami na AGH" Autorzy: Adrian Stanula Grzegorz Stopa Mariusz Sasko Data: 14 XI 2008 rok Spis tre±ci 1 Sformuªowanie zadania projektowego.

Bardziej szczegółowo

System kontroli wersji SVN

System kontroli wersji SVN System kontroli wersji SVN Co to jest system kontroli wersji Wszędzie tam, gdzie nad jednym projektem pracuje wiele osób, zastosowanie znajduje system kontroli wersji. System, zainstalowany na serwerze,

Bardziej szczegółowo

Listy i operacje pytania

Listy i operacje pytania Listy i operacje pytania Iwona Polak iwona.polak@us.edu.pl Uniwersytet l ski Instytut Informatyki pa¹dziernika 07 Który atrybut NIE wyst puje jako atrybut elementów listy? klucz elementu (key) wska¹nik

Bardziej szczegółowo

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia 2011. Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia 2011. Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej Matematyka wykªad 1 Macierze (1) Andrzej Torój Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej 17 wrze±nia 2011 Plan wykªadu 1 2 3 4 5 Plan prezentacji 1 2 3 4 5 Kontakt moja strona internetowa:

Bardziej szczegółowo

Chess. Joanna Iwaniuk. 9 marca 2010

Chess. Joanna Iwaniuk. 9 marca 2010 9 marca 2010 Plan prezentacji 1. Co to jest? 2. Jak u»ywa? 3. Prezentacja dziaªania 4. kontrola przeplotów model checking odtwarzanie wadliwego wykonania 5. Ogólna idea Wynik dziaªania Co to jest? program

Bardziej szczegółowo

Zarz dzanie rm. Zasada 2: samoorganizuj ce si zespoªy. Piotr Fulma«ski. March 17, 2015

Zarz dzanie rm. Zasada 2: samoorganizuj ce si zespoªy. Piotr Fulma«ski. March 17, 2015 Zarz dzanie rm Zasada 2: samoorganizuj ce si zespoªy Piotr Fulma«ski Instytut Nauk Ekonomicznych i Informatyki, Pa«stwowa Wy»sza Szkoªa Zawodowa w Pªocku, Polska March 17, 2015 Table of contents Ludzie

Bardziej szczegółowo

Automatyzacja procesu publikowania w bibliotece cyfrowej

Automatyzacja procesu publikowania w bibliotece cyfrowej Automatyzacja procesu publikowania w bibliotece cyfrowej Jakub Bajer Biblioteka Politechniki Poznańskiej Krzysztof Ober Poznańska Fundacja Bibliotek Naukowych Plan prezentacji 1. Cel prezentacji 2. Proces

Bardziej szczegółowo

EDUKARIS - O±rodek Ksztaªcenia

EDUKARIS - O±rodek Ksztaªcenia - O±rodek Ksztaªcenia Zabrania si kopiowania i rozpowszechniania niniejszego regulaminu przez inne podmioty oraz wykorzystywania go w dziaªalno±ci innych podmiotów. Autor regulaminu zastrzega do niego

Bardziej szczegółowo

Subversion - jak dziaªa

Subversion - jak dziaªa - jak dziaªa Krótka instrukcja obsªugi lstelmach@gmail.com Stelmisoft 12/07/2010 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 Spis tre±ci Czym jest Czym jest repozytorium 1 Czym jest Czym jest repozytorium

Bardziej szczegółowo

Sieci komputerowe cel

Sieci komputerowe cel Sieci komputerowe cel współuŝytkowanie programów i plików; współuŝytkowanie innych zasobów: drukarek, ploterów, pamięci masowych, itd. współuŝytkowanie baz danych; ograniczenie wydatków na zakup stacji

Bardziej szczegółowo

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition) Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition) J Krupski Click here if your download doesn"t start automatically Karpacz, plan miasta 1:10 000: Panorama

Bardziej szczegółowo

Baza danych - Access. 2 Budowa bazy danych

Baza danych - Access. 2 Budowa bazy danych Baza danych - Access 1 Baza danych Jest to zbiór danych zapisanych zgodnie z okre±lonymi reguªami. W w»szym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyj tymi dla danego programu

Bardziej szczegółowo

Polityka prywatności strony internetowej wcrims.pl

Polityka prywatności strony internetowej wcrims.pl Polityka prywatności strony internetowej wcrims.pl 1. Postanowienia ogólne 1.1. Niniejsza Polityka prywatności określa zasady gromadzenia, przetwarzania i wykorzystywania danych w tym również danych osobowych

Bardziej szczegółowo

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1.

Bardziej szczegółowo

Konfiguracja historii plików

Konfiguracja historii plików Wielu producentów oprogramowania oferuje zaawansowane rozwiązania do wykonywania kopii zapasowych plików użytkownika czy to na dyskach lokalnych czy w chmurze. Warto jednak zastanowić się czy instalacja

Bardziej szczegółowo

MaPlan Sp. z O.O. Click here if your download doesn"t start automatically

MaPlan Sp. z O.O. Click here if your download doesnt start automatically Mierzeja Wislana, mapa turystyczna 1:50 000: Mikoszewo, Jantar, Stegna, Sztutowo, Katy Rybackie, Przebrno, Krynica Morska, Piaski, Frombork =... = Carte touristique (Polish Edition) MaPlan Sp. z O.O Click

Bardziej szczegółowo

Praca Dyplomowa Magisterska

Praca Dyplomowa Magisterska Internetowa Platform Edukacyjna w Technologii ZOPE Autor: Promotor: Dr in». Adam Doma«ski Politechnika l ska Wydziaª Automatyki, Elektroniki i Informatyki Kierunek Informatyka 22 wrze±nia 2009 Dlaczego

Bardziej szczegółowo

Projekt ATENA - system wspomagaj cy zarz dzanie szkoª lub zespoªem szkóª przedlicealnych

Projekt ATENA - system wspomagaj cy zarz dzanie szkoª lub zespoªem szkóª przedlicealnych Projekt ATENA - system wspomagaj cy zarz dzanie szkoª lub zespoªem szkóª przedlicealnych Robert Boczek Dawid Ciepli«ski Paweª Bara 19 marca 2009 Outline Technologia w trzech etapach JAVA Oracle Java Server

Bardziej szczegółowo

Edycja geometrii w Solid Edge ST

Edycja geometrii w Solid Edge ST Edycja geometrii w Solid Edge ST Artykuł pt.: " Czym jest Technologia Synchroniczna a czym nie jest?" zwracał kilkukrotnie uwagę na fakt, że nie należy mylić pojęć modelowania bezpośredniego i edycji bezpośredniej.

Bardziej szczegółowo

Formularz informacyjny dotyczący kredytu konsumenckiego

Formularz informacyjny dotyczący kredytu konsumenckiego Formularz informacyjny dotyczący kredytu konsumenckiego 1.Imię, nazwisko (nazwa) i adres (siedziba) kredytodawcy lub pośrednika kredytowego KREDYTODAWCA: POLI INVEST Spółka z ograniczoną odpowiedzialnością

Bardziej szczegółowo

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy. 1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja

Bardziej szczegółowo

Zobacz to na własne oczy. Przyszłość już tu jest dzięki rozwiązaniu Cisco TelePresence.

Zobacz to na własne oczy. Przyszłość już tu jest dzięki rozwiązaniu Cisco TelePresence. Informacje dla kadry zarządzającej Zobacz to na własne oczy. Przyszłość już tu jest dzięki rozwiązaniu Cisco TelePresence. 2010 Cisco i/lub firmy powiązane. Wszelkie prawa zastrzeżone. Ten dokument zawiera

Bardziej szczegółowo

Charakterystyka systemów plików

Charakterystyka systemów plików Charakterystyka systemów plików Systemy plików są rozwijane wraz z systemami operacyjnymi. Windows wspiera systemy FAT oraz system NTFS. Różnią się one sposobem przechowywania informacji o plikach, ale

Bardziej szczegółowo

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych. Wykªad jest prowadzony w oparciu o podr cznik Analiza matematyczna 2. Denicje, twierdzenia, wzory M. Gewerta i Z. Skoczylasa. Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych. Denicja Mówimy,»e funkcja

Bardziej szczegółowo

Poz z dnia 27 marca 2015 r. zm. 1)

Poz z dnia 27 marca 2015 r. zm. 1) Poz. 459 z dnia 27 marca 2015 r. zm. 1) - - - 1) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nych. - - - - - - - - - - - - - M. Szczurek z dnia 27 marca 2015

Bardziej szczegółowo

Informacja dotycząca adekwatności kapitałowej HSBC Bank Polska S.A. na 31 grudnia 2010 r.

Informacja dotycząca adekwatności kapitałowej HSBC Bank Polska S.A. na 31 grudnia 2010 r. Informacja dotycząca adekwatności kapitałowej HSBC Bank Polska S.A. na 31 grudnia 2010 r. Spis treści: 1. Wstęp... 3 2. Fundusze własne... 4 2.1 Informacje podstawowe... 4 2.2 Struktura funduszy własnych....5

Bardziej szczegółowo

Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych

Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych Program szkoleniowy Efektywni50+ Moduł III 1 Wprowadzenie do zagadnienia wymiany dokumentów. Lekcja rozpoczynająca moduł poświęcony standardom wymiany danych. Wprowadzenie do zagadnień wymiany danych w

Bardziej szczegółowo

Podstawy modelowania w j zyku UML

Podstawy modelowania w j zyku UML Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 2 Zwi zki mi dzy klasami Asocjacja (ang. Associations) Uogólnienie, dziedziczenie (ang.

Bardziej szczegółowo

API transakcyjne BitMarket.pl

API transakcyjne BitMarket.pl API transakcyjne BitMarket.pl Wersja 20140314 1. Sposób łączenia się z API... 2 1.1. Klucze API... 2 1.2. Podpisywanie wiadomości... 2 1.3. Parametr tonce... 2 1.4. Odpowiedzi serwera... 3 1.5. Przykładowy

Bardziej szczegółowo

Lekcja 12 - POMOCNICY

Lekcja 12 - POMOCNICY Lekcja 12 - POMOCNICY 1 Pomocnicy Pomocnicy, jak sama nazwa wskazuje, pomagaj Baltiemu w programach wykonuj c cz ± czynno±ci. S oni szczególnie pomocni, gdy chcemy ci g polece«wykona kilka razy w programie.

Bardziej szczegółowo

Elementy Modelowania Matematycznego Wykªad 9 Systemy kolejkowe

Elementy Modelowania Matematycznego Wykªad 9 Systemy kolejkowe Elementy Modelowania Matematycznego Wykªad 9 Systemy kolejkowe Romuald Kotowski Katedra Informatyki Stosowanej PJWSTK 2009 Spis tre±ci 1 2 3 Spis tre±ci 1 2 3 Spis tre±ci 1 2 3 Teoria masowej obsªugi,

Bardziej szczegółowo

PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec

PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec PROE wykład 7 kontenery tablicowe, listy dr inż. Jacek Naruniec Prosty kontener oparty na tablicach Funkcja dodawanie pojedynczego słonia do kontenera: 1 2 3 4 5 6 7 11 12 13 14 15 16 17 21 22 23 24 25

Bardziej szczegółowo

Metody numeryczne i statystyka dla in»ynierów

Metody numeryczne i statystyka dla in»ynierów Kierunek: Automatyka i Robotyka, II rok Wprowadzenie PWSZ Gªogów, 2009 Plan wykªadów Wprowadzenie, podanie zagadnie«, poj cie metody numerycznej i algorytmu numerycznego, obszar zainteresowa«i stosowalno±ci

Bardziej szczegółowo

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów 1 Wst p Przypomnijmy,»e komputer skªada si z procesora, pami ci, systemu wej±cia-wyj±cia oraz po- ª cze«mi dzy nimi. W procesorze mo»emy

Bardziej szczegółowo

Katowice, plan miasta: Skala 1: = City map = Stadtplan (Polish Edition)

Katowice, plan miasta: Skala 1: = City map = Stadtplan (Polish Edition) Katowice, plan miasta: Skala 1:20 000 = City map = Stadtplan (Polish Edition) Polskie Przedsiebiorstwo Wydawnictw Kartograficznych im. Eugeniusza Romera Click here if your download doesn"t start automatically

Bardziej szczegółowo

Analiza wydajno±ci serwera openldap

Analiza wydajno±ci serwera openldap Analiza wydajno±ci serwera openldap Autor: Tomasz Kowal 13 listopada 2003 Wst p Jako narz dzie testowe do pomiarów wydajno±ci i oceny konguracji serwera openldap wykorzystano pakiet DirectoryMark w wersji

Bardziej szczegółowo

Harmonogramowanie projektów Zarządzanie czasem

Harmonogramowanie projektów Zarządzanie czasem Harmonogramowanie projektów Zarządzanie czasem Zarządzanie czasem TOMASZ ŁUKASZEWSKI INSTYTUT INFORMATYKI W ZARZĄDZANIU Zarządzanie czasem w projekcie /49 Czas w zarządzaniu projektami 1. Pojęcie zarządzania

Bardziej szczegółowo

SSW1.1, HFW Fry #20, Zeno #25 Benchmark: Qtr.1. Fry #65, Zeno #67. like

SSW1.1, HFW Fry #20, Zeno #25 Benchmark: Qtr.1. Fry #65, Zeno #67. like SSW1.1, HFW Fry #20, Zeno #25 Benchmark: Qtr.1 I SSW1.1, HFW Fry #65, Zeno #67 Benchmark: Qtr.1 like SSW1.2, HFW Fry #47, Zeno #59 Benchmark: Qtr.1 do SSW1.2, HFW Fry #5, Zeno #4 Benchmark: Qtr.1 to SSW1.2,

Bardziej szczegółowo

zgubił całą naszą korespondencję Można by tak wymieniać bez bezpieczeństwa, gdyby była wykonana dnia poprzedniego rozwiązałaby niejeden problem.

zgubił całą naszą korespondencję Można by tak wymieniać bez bezpieczeństwa, gdyby była wykonana dnia poprzedniego rozwiązałaby niejeden problem. Zasada działania usługi Business Safe jest prosta. Zainstalowany na Twoim komputerze progra Dlaczego backupować? Któż z nas nie zna smaku tego okropnego uczucia, gdy włączając kompuuter, który jeszcze

Bardziej szczegółowo

Wsparcie w realizacji projektów. Podział projektów. Potrzeby, a rodzaje programów

Wsparcie w realizacji projektów. Podział projektów. Potrzeby, a rodzaje programów Wsparcie w realizacji projektów Narzędzia informatyczne wspomagające zarządzanie projektami mgr Marcin Darecki mgr Magdalena Marczewska TiMO(Zakład Teorii i Metod Organizacji) Wydział Zarządzania Uniwersytetu

Bardziej szczegółowo

W zadaniach na procenty wyró»niamy trzy typy czynno±ci: obliczanie, jakim procentem jednej liczby jest druga liczba,

W zadaniach na procenty wyró»niamy trzy typy czynno±ci: obliczanie, jakim procentem jednej liczby jest druga liczba, 2 Procenty W tej lekcji przypomnimy sobie poj cie procentu i zwi zane z nim podstawowe typy zada«. Prosimy o zapoznanie si z regulaminem na ostatniej stronie. 2.1 Poj cie procentu Procent jest to jedna

Bardziej szczegółowo

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego Wstęp. Dodanie funkcjonalności wysyłania wniosków bez podpisów

Bardziej szczegółowo

Skitch for Android Instrukcja obsługi 2012 Evernote Corporation Wszelkie prawa zastrzeżone Opublikowano: Jun 19, 2012

Skitch for Android Instrukcja obsługi 2012 Evernote Corporation Wszelkie prawa zastrzeżone Opublikowano: Jun 19, 2012 Skitch for Android Instrukcja obsługi 2012 Evernote Corporation Wszelkie prawa zastrzeżone Opublikowano: Jun 19, 2012 Welcome to Skitch for Android! This document will guide you through the basics of using

Bardziej szczegółowo

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, ) Kod szkolenia: Tytuł szkolenia: JEE/JSP Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, ) Dni: 5 Opis: Adresaci szkolenia: Szkolenie adresowane jest do programistów

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE DLA KLASY III GIMNAZJUM POZIOM ROZSZERZONY

WYMAGANIA EDUKACYJNE DLA KLASY III GIMNAZJUM POZIOM ROZSZERZONY WYMAGANIA EDUKACYJNE DLA KLASY III GIMNAZJUM POZIOM ROZSZERZONY 1 WYMOGI EDUKACYJNE NA POSZCZEGÓLNE OCENY Z JĘZYKA ANGIELSKIEGO KRYTERIA OCENIANIA ACCESS 4 Starter zwrotów z Modułu 0. wyrazów i zwrotów

Bardziej szczegółowo

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition) Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition) Piotr Maluskiewicz Click here if your download doesn"t start automatically Miedzy

Bardziej szczegółowo

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1 J zyki formalne i operacje na j zykach J zyki formalne s abstrakcyjnie zbiorami sªów nad alfabetem sko«czonym Σ. J zyk formalny L to opis pewnego problemu decyzyjnego: sªowa to kody instancji (wej±cia)

Bardziej szczegółowo

Ewidencja abonentów. Kalkulacja opłat

Ewidencja abonentów. Kalkulacja opłat Wachlarz możliwości programu w całości wykorzystywać będą operatorzy o szerokiej strukturze oraz rozbudowanej ofercie. Jednak program został zaprojektowany tak, by umożliwić obsługę zarówno niewielkiej

Bardziej szczegółowo

Rachunek zysków i strat

Rachunek zysków i strat Rachunek zysków i strat Pojęcia Wydatek rozchód środków pieniężnych w formie gotówkowej (z kasy) lub bezgotówkowej (z rachunku bankowego), który likwiduje zobowiązania. Nakład celowe zużycie zasobów w

Bardziej szczegółowo

zone ATMS.zone Profesjonalny system analizy i rejestracji czas pracy oraz kontroli dostępu

zone ATMS.zone Profesjonalny system analizy i rejestracji czas pracy oraz kontroli dostępu zone ATMS.zone Profesjonalny system analizy i rejestracji czas pracy oraz kontroli dostępu zone ATMS.zone To profesjonalny system analizy i rejestracji czasu pracy oraz kontroli dostępu. Stworzony został

Bardziej szczegółowo

Metody dowodzenia twierdze«

Metody dowodzenia twierdze« Metody dowodzenia twierdze«1 Metoda indukcji matematycznej Je±li T (n) jest form zdaniow okre±lon w zbiorze liczb naturalnych, to prawdziwe jest zdanie (T (0) n N (T (n) T (n + 1))) n N T (n). 2 W przypadku

Bardziej szczegółowo

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji Projekt współfinansowany ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka

Bardziej szczegółowo